Batch Sprungmarke aus .csv File

Mitglied: freshman2017

freshman2017 (Level 1) - Jetzt verbinden

07.04.2021, aktualisiert 12:28 Uhr, 405 Aufrufe, 8 Kommentare

Guten Tag liebe Gemeinde,

in einem Batch Skript möchte ich gerne mit einer Sprungmarke (goto) arbeiten.

Wenn in der 3. Spalte einer einzeiligen .csv „start1“ steht, soll er zu start1 springen, wenn da „start2“ steht, dann zu start2 springen, sonst zum :ende.

Wie kann ich mit Variabeln aus einer Textdatei für die If- Anweisung arbeiten?

Beste Grüße


Mitglied: mhaendler
07.04.2021, aktualisiert um 14:36 Uhr
Hi, wieso sollte man das machen wollen? Sprungmarken sind nicht ohne Grund verpönt. Was spricht denn dagegen das ganze mittels Funktionen zulösen?

Wenn in der 3. Spalte einer einzeiligen .csv „start1“ steht, soll er DIE FUNKTION start1 aufrufen, wenn da „start2“ steht, dann die Funktion start2 aufrufen, ansonsten die Funktion :ende bzw. das Skript beenden?

Was ist denn nun eigentlich deine genaue Frage? Möchtest du nun mit einer CSV Datei arbeiten oder doch mit einer TXT Datei? Wie sieht dein Code bisher aus und wo hängst du denn aktuell / kommst nicht weiter?
Bitte warten ..
Mitglied: TK1987
LÖSUNG 07.04.2021, aktualisiert um 13:57 Uhr
Moin,


Gruß Thomas
Bitte warten ..
Mitglied: TK1987
07.04.2021, aktualisiert um 14:22 Uhr
Moin,

und wieso postet man eine mehr als unfreundliche Antwort, die darüber hinaus noch überhaupt keinen Sinn ergibt?
Zitat von @mhaendler:
und wieso sollte man das machen wollen? Sprungmarken sind nicht ohne Grund verpönt. Was spricht denn dagegen das ganze mittels Funktionen zulösen?
Dagegen spricht zum Beispiel, dass es bei Batch keine Funktionen gibt, sowas wird dort anders gelöst... lass mich überlegen... ach ja: mit Sprungmarken.
Man könnte jetzt meinen du weist hier auf Powershell hin - ergibt allerdings auch keinen Sinn, denn dort sind Sprungmarken nicht verpönt, es gibt sie schlicht nicht.
Was ist denn nun eigentlich deine genaue Frage? Möchtest du nun mit einer CSV Datei arbeiten oder doch mit einer TXT Datei?
Die Frage ist durchaus plausibel dargestellt.
Wie sieht dein Code bisher aus und wo hängst du denn aktuell / kommst nicht weiter?
Steht doch oben.

Netiquette beachten!

Gruß Thomas
Bitte warten ..
Mitglied: warranty
LÖSUNG 07.04.2021, aktualisiert um 14:50 Uhr
Zitat von @TK1987:

Moin,


Gruß Thomas
Kleine Korrektur für seine Anforderung das bei anderen Wertem als start1 und start2 direkt zum Ende gesprungen werden soll

Bitte warten ..
Mitglied: mhaendler
07.04.2021 um 15:01 Uhr
Hi Thomas,

danke für den Hinweis ich werde versuchen meine zukünftigen Antworten besser zu formulieren:

Dagegen spricht zum Beispiel, dass es bei Batch keine Funktionen gibt, sowas wird dort anders gelöst... lass mich überlegen... ach ja: mit Sprungmarken.

Leider hast du da nicht ganz recht, in Batch gibt es sehr wohl Funktionen. Mit CALL kann man entsprechend definierte Funktionen aufrufen und diesen sogar Parametern übergeben, wie in diesem Beispiel:

Man könnte jetzt meinen du weist hier auf Powershell hin - ergibt allerdings auch keinen Sinn, denn dort sind Sprungmarken nicht verpönt, es gibt sie schlicht nicht.

Dreimal darfst du raten, warum es diese in Powershell nicht gibt. Genau so wurde in Java der GoTo Befehl nicht umgesetzt. Muss man hier natürlich auch erwähnen, dass beispielsweise im Linux-Kernel durch GoTos die Lesbarkeit erhöht wurde.

@thomas danke!
Ich würde dir allerdings abraten, anhand des Befehls eine entsprechende Sprungmarke aufzusuchen. Sie dir beispielsweise PowerShell an, diese bietet einfach mittlerweile schon Erneuerung und Möglichkeiten die du bei Batch nicht hast.

Ich kanns leider gerade nicht testen aber so ungefähr müsste es gehen:


Bitte warten ..
Mitglied: TK1987
07.04.2021, aktualisiert um 15:08 Uhr
Zitat von @mhaendler:
Leider hast du da nicht ganz recht, in Batch gibt es sehr wohl Funktionen. Mit CALL kann man entsprechend definierte Funktionen aufrufen und diesen sogar Parametern übergeben, wie in diesem Beispiel:
Mit CALL rufst du ebenfalls eine Sprungmarke auf. Der einzige Unterschied zwischen GOTO und CALL ist lediglich, das CALL wieder zum Ausgangspunkt zurück kehrt, sobald es am Ende des Skripts angekommen ist, während GOTO einmal hinspringt und dort bleibt.
Dreimal darfst du raten, warum es diese in Powershell nicht gibt.
Weil jede moderne Sprache Modualisierung beherrschen sollte, was Batch jedoch ohnehin nicht kann.
Bitte warten ..
Mitglied: mhaendler
07.04.2021 um 16:28 Uhr
Mit CALL rufst du ebenfalls eine Sprungmarke auf. Der einzige Unterschied zwischen GOTO und CALL ist lediglich, das CALL wieder zum Ausgangspunkt zurück kehrt, sobald es am Ende des Skripts angekommen ist, während GOTO einmal hinspringt und dort bleibt.

Das ist falsch, mit Call rufst du eine Funktion auf der du Parameter übergeben kannst, was in Batch zwar die gleiche Schreibweise hat, aber per Definition kann man einer Sprungmarke keine Parameter übergeben. Einer Funktion eben schon. Sonst würde es ja nicht den unterschied zwischen CALL und GOTO geben.

Weil jede moderne Sprache Modualisierung beherrschen sollte, was Batch jedoch ohnehin nicht kann.
Naja Batch ist auch mittlerweile über 30 Jahre alt. Das ist ja das schöne an Technik der ständige Fortschritt, es wird immer neue Sachen geben und alte Sprachen / schlechte Umsetzung wird nach und nach vergessen. Weshalb es umso wichtiger ist, den Leuten direkt zu vermitteln, dass Sie auf neuere Tool umsteigen sollen (Adé Batch, Hallo PowerShell).

Und wir als Forum sollten Jüngeren, ggf. Unwissenden direkt darauf aufmerksam machen, dass es ratsam ist, nicht alte Sprachen zu verwenden, sondern direkt die Probleme mit den entsprechenden "neuen" Tools zu verwenden. Wobei PowerShell dieses Jahr auch schon 15 Jahre alt wird.
Bitte warten ..
Mitglied: freshman2017
07.04.2021 um 18:01 Uhr
Vielen lieben Dank für die Kommentare und die Hilfestellung 👍
Bitte warten ..
Heiß diskutierte Inhalte
Datenschutz
Regierung testet Einsatz von Microsoft Azure-Cloud für die Bundescloud
VisuciusVor 1 TagInformationDatenschutz34 Kommentare

LÄUFT! Deutschland will Microsoft für die Bundescloud testen Ich hätts ja beinahe unter dem Topic "Humor" veröffentlicht. Aber der 1. April ist ja durch ...

Festplatten, SSD, Raid
Festplatte aus defekten Notebook ausgebaut - wird nicht erkannt - Wie gelange ich an meine Daten?
1nCoreVor 1 TagFrageFestplatten, SSD, Raid14 Kommentare

Hallo liebe Community, nach 7 Jahren hat mein XMG Notebook seinen Geist aufgegeben In dem Notebook waren zwei Festplatten verbaut (eine für System und ...

Erkennung und -Abwehr
Wie geschickt sich Malware verstecken kann - Ein Beispiel aus der Praxis eines Security Experts
colinardoVor 16 StundenTippErkennung und -Abwehr3 Kommentare

Servus Kollegen und Mitstreiter, da ja in letzter Zeit die Exchange-Lücken die Admin-Landschaft ziemlich aufgewirbelt haben und dabei auch immer mal wieder "sogenannte" Admins ...

Internet
Woher holt sich Android die Kontaktdaten von unbekannten Rufnummern?
gelöst anteNopeVor 1 TagFrageInternet8 Kommentare

Hallo zusammen, seit einiger Zeit merke ich, dass mir mein Android Gerät Namen und Informationen zu mir unbekannten Teilnehmern präsentiert. Soll heißen eine nicht ...

Windows Netzwerk
MS Lizenzierung - externe Scandienstleistung
monstermaniaVor 1 TagFrageWindows Netzwerk9 Kommentare

Hallo Allerseits, ich habe da mal eine Frage an die MS Lizenzspeziallisten. Eine externe Firma soll Scandienstleistungen für uns erledigen. Dazu ist angedacht, dass ...

Exchange Server
Exchange Update CU19 auf CU20 Fehler - Eine weitere Version dieses Produkts ist bereits installiert
gelöst StefanKittelVor 1 TagFrageExchange Server6 Kommentare

Hallo, ich habe hier einen Exchange 2016 mit CU19 (15.1.2176.2). Darauf wollte ich nun CU20 installiert. Download Es erscheint Eine weitere Version dieses Produkts ...

Exchange Server
April 2021 Microsoft Exchange Server Security Updates
FrankVor 1 TagInformationExchange Server2 Kommentare

Microsoft has released security updates for vulnerabilities found in: Exchange Server 2013 Exchange Server 2016 Exchange Server 2019 These updates are available for the ...

Windows 10
Windows 10 Updates im Abgesicherten Modus nicht möglich!
gelöst Yuuto.LucasVor 23 StundenFrageWindows 1016 Kommentare

Hallo, ich habe aktuell ein Problem bei einem Kunden Rechner. Bei diesem gibt es Probleme mit dem Soundkarten Treiber hdaudio.inf wegen dem der PC ...