For-Befehl mit tokens und delims
Ich habe z.B. diesen Satz in einer Textdatei:
- Hallo, mein Name lautet Olaf Günther.
Wie kann ich nun in einer Batch mit dem For-Befehl (und den tokens und delims) die Wörter Olaf und Günther in einer einzigen Variable speichern?
Ich habe ja an diese Variante gedacht:
- FOR /F "tokens=5,6 delims= " %%a IN (temp.txt) do ECHO %%a
Jedoch zeigt er mit lediglich Olaf an (den 5. token), nicht aber den 6. (Günther). Weiß einer, was ich falsch mache?
1 Antwort
Habe mich bisher nicht ausführlich mit FOR in der Kommandozeile beschäftigt, aber rumspielen kann man ja mal...
Dein "FOR /F" iteriert über die Zeilen der Quelldatei, nicht über die Wörter. Und Deine Quelltdatei hat nur die eine Zeile. Also erfolgt nur ein Durchlauf der FOR-Schleife. Bei mir erreiche ich Dein Ziel offenbar so:
FOR /F "tokens=5,6 delims= " %%a IN (temp.txt) do ECHO %%a %%b
D.h. es wird über jede Zeile iteriert, und aus jeder Zeile jeweils das 5. und 6. Wort ausgegeben. Das erste %%a legt fest, daß die Ausgabe der For-Schleife mit %%a beginnt, nachfolgende Teile der Ausgabe kommen dann (sofern vorhanden) mit %%b, %%c, ...
Meine Quelle, die mich zum Ziel führte, waren:
http://stackoverflow.com/questions/817280/how-does-for-work-in-cmd-batch-file
(WIndows XP SP3)-> [Start]->[Hilfe und Support]->[suchen nach "FOR /F"], und dann etwa herunterscrollen...