Wie Text Zeilenweise per Batch aus txt auslesen...?
Hallo Leute!
ich habe schon das Forum durchsucht aber irgendwie nicht das gefunden was ich brauche. Ich möchte mit einer Schleife Zeilenweise Text (Computernamen) auslesen und diese dann als Variable setzen damit ich damit arbeiten kann. Bisher habe ich folgendes versucht:
das funktioniert zwar schonmal garnicht so schlecht, allerdings rattert die schleife bis zur letzten zeile durch und setzt mir den letzten wert dann als variable. Ich brauch aber zuerst die erste Zeile, dann möchte ich einen Befehl ausführen und wenn er den beendet hat soll er die zweite Zeile auslesen usw. Wie gehts richtig...?
ich habe schon das Forum durchsucht aber irgendwie nicht das gefunden was ich brauche. Ich möchte mit einer Schleife Zeilenweise Text (Computernamen) auslesen und diese dann als Variable setzen damit ich damit arbeiten kann. Bisher habe ich folgendes versucht:
FOR /F "skip=2 delims=" %%i IN (clients.txt) DO set client=%%i
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75303
Url: https://administrator.de/forum/wie-text-zeilenweise-per-batch-aus-txt-auslesen-75303.html
Ausgedruckt am: 28.04.2025 um 23:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo -eraz- und willkommen im Forum!
Je nachdem, was Du alles vorhast, wird es vermutlich sinnvoll sein, ein Unterprogramm einzusetzen - etwa so:
Dieses Unterprogramm verhält sich im Prinzip wie ein neuer Batch, der mit dem Parameter "Client" aufgerufen wurde. Der Parameter wird dabei mit %1 (oder %~1, um die beim Aufruf zur Sicherheit gesetzten umgebenden Anführungszeichen zu entfernen) angesprochen.
Das Unterprogramm wird mit "goto :eof" beendet, was einem "Return" (zur aufrufenden Schleife) entspricht. Wenn (wie in meinem Beispiel) unterhalb des Unterprogramms kein weiterer Programmcode folgt, kannst Du dieses "gotoi :eof" auch weglassen.
Das "goto :eof" im Hauptprogramm beendet dann den Batch, damit das Unterprogramm nicht unbeabsichtigt nach dem Ende der Schleife nochmals durchlaufen wird.
Grüße
bastla
Je nachdem, was Du alles vorhast, wird es vermutlich sinnvoll sein, ein Unterprogramm einzusetzen - etwa so:
FOR /F "skip=2 delims=" %%i IN (clients.txt) DO call :ProcessClient "%%i"
goto :eof
:ProcessClient
echo Client %~1 wird bearbeitet
...
...
goto :eof
Das Unterprogramm wird mit "goto :eof" beendet, was einem "Return" (zur aufrufenden Schleife) entspricht. Wenn (wie in meinem Beispiel) unterhalb des Unterprogramms kein weiterer Programmcode folgt, kannst Du dieses "gotoi :eof" auch weglassen.
Das "goto :eof" im Hauptprogramm beendet dann den Batch, damit das Unterprogramm nicht unbeabsichtigt nach dem Ende der Schleife nochmals durchlaufen wird.
Grüße
bastla