Batch liest Textdatei, gibt Variable mit Leerzeichen aber nur verstümmelt aus
Ich habe eine Textdatei (test.txt)
Sie enthält Fürs Beispiel eine Zeile mit dem Inhalt: Ein Test
Ich erstelle eine Testbatchdatei mit dem Inhalt:
@cls
@for /F "eol= tokens=1 delims=, " %%i in (test.txt) do @echo Variableninhalt: %%i
pause
Wenn ich das nun ausführe spuckt das Dosfenster nur "Ein" aus. Ein setzen von "" um die Variable in der Textdatei als auch bei der Ausgabe bringt genau gar nichts.
Wie kann ich dafür sorgen das er die Variable komplett einliest bzw. ausgibt?
Sie enthält Fürs Beispiel eine Zeile mit dem Inhalt: Ein Test
Ich erstelle eine Testbatchdatei mit dem Inhalt:
@cls
@for /F "eol= tokens=1 delims=, " %%i in (test.txt) do @echo Variableninhalt: %%i
pause
Wenn ich das nun ausführe spuckt das Dosfenster nur "Ein" aus. Ein setzen von "" um die Variable in der Textdatei als auch bei der Ausgabe bringt genau gar nichts.
Wie kann ich dafür sorgen das er die Variable komplett einliest bzw. ausgibt?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 45425
Url: https://administrator.de/forum/batch-liest-textdatei-gibt-variable-mit-leerzeichen-aber-nur-verstuemmelt-aus-45425.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
4 Kommentare
Neuester Kommentar
Moin dumbo,
obwohl ich von Userverwaltung nicht so viel verstehe, trotzdem ein paar unverbindliche Tipps von mir zum FOR /F -Befehl.
1) Niemals "eol=" verwenden, wenn Du nicht weißt, was es bedeutet
2) Niemals "tokens=1" verwenden, wenn Du nicht weißt, was es bedeutet
3) Niemals "delims=, " verwenden, wenn Du nicht weißt, was es bedeutet
4) in der Hilfe zu FOR (also "FOR /?") ist alles erklärt
5) in diesem HowTo ist es noch besser beschrieben, was ich meine.
Grüße
Biber
obwohl ich von Userverwaltung nicht so viel verstehe, trotzdem ein paar unverbindliche Tipps von mir zum FOR /F -Befehl.
1) Niemals "eol=" verwenden, wenn Du nicht weißt, was es bedeutet
2) Niemals "tokens=1" verwenden, wenn Du nicht weißt, was es bedeutet
3) Niemals "delims=, " verwenden, wenn Du nicht weißt, was es bedeutet
4) in der Hilfe zu FOR (also "FOR /?") ist alles erklärt
5) in diesem HowTo ist es noch besser beschrieben, was ich meine.
Grüße
Biber
Dann nochmal ganz humorlos (ist eh nicht meine starke Seite).
"Tokens=1" bedeutet: nur der erste Token (quasi das erste Einzelteil, das erste Wort) der Gesamtzeile.
"Delims=, " bedeutet: ...fasse als Token alles auf, was vom Nachfolger durch "KOMMA" oder SPACE getrennt ist.
Gesamtzeile "Ein Test"
Delims= KOMMA und SPACE
Token1="Ein"
Token2="Test"
Wenn Du die ganze Zeile möchtest, dann..
HTH Biber
P.S. Ach ja.. und "eol=" bedeutet:
Das End-of-Lied wird beim nächsten Mal das gleiche sein, wenn Du nicht vorher die Syntaxbedeutung kennst.
"Tokens=1" bedeutet: nur der erste Token (quasi das erste Einzelteil, das erste Wort) der Gesamtzeile.
"Delims=, " bedeutet: ...fasse als Token alles auf, was vom Nachfolger durch "KOMMA" oder SPACE getrennt ist.
Gesamtzeile "Ein Test"
Delims= KOMMA und SPACE
Token1="Ein"
Token2="Test"
Wenn Du die ganze Zeile möchtest, dann..
FOR /F "delims=" %%i in (test.txt) do @echo VarInhalt: %%i
HTH Biber
P.S. Ach ja.. und "eol=" bedeutet:
Das End-of-Lied wird beim nächsten Mal das gleiche sein, wenn Du nicht vorher die Syntaxbedeutung kennst.