dumbo
Goto Top

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?

Content-Key: 45425

Url: https://administrator.de/contentid/45425

Printed on: April 26, 2024 at 11:04 o'clock

Member: Biber
Biber Nov 27, 2006 at 12:25:18 (UTC)
Goto Top
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
Member: dumbo
dumbo Nov 27, 2006 at 13:30:20 (UTC)
Goto Top
ach gottchen bist du ein Witzbold.
Ich verbeuge mich vor deiner unendlichen Weisheit.

Hochmut kommt vor dem Fall, frohes stolpern.
Member: Biber
Biber Nov 27, 2006 at 13:39:38 (UTC)
Goto Top
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..
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.
Member: dumbo
dumbo Nov 27, 2006 at 13:42:58 (UTC)
Goto Top
Ein Reminder den "delims" Parameter zu überdenken hätte gereicht, der Fehler war das Leerzeichen - ja.
Das Token wäre nicht das Problem gewesen, da die Token, so mehrere vorhanden sind, durch den Parameter "delims" bestimmt werden.

Mich ärgert es ein wenig, wenn man aufgrund eines dummen Fehlers auch gleich als Depp abgestempelt wird. Und ich verlange niemals eine Komplettlösung sondern lediglich einen Hinweis.