pgmende
Goto Top

Aufzählung in FOR-Schleife

Übergabe der Werte (Variablen) soll in der gleichen Zeile stattfinden

Hallo!

Ich würde gerne unter Windows 2003 R2 eine Batchdatei mit einer FOR-Schleife auszuführen.
Normalerweise würde ich

FOR /F %%I IN (datei.txt) DO irgendwas %%I

benutzen, um einen Befehl mehrmals mit unterschiedlichen Werten auszuführen.

Angeblich soll es aber auch möglich sein, statt der Aufzählung in einer Textdatei die Aufzählung direkt in dieser Zeile mitzugeben.

FOR /F %%I IN ("text1" "text2" "text3") DO irgendwas %%I

Aber alle Aufzählungen werden ignoriert, es wird immer nur der erste Eintrag genommen.
Ich habe auch schon mit Anführungszeichen und Komma experimentiert, ebenso mit Tokens und Delims - hat aber nicht den gewünschten Erfolg gebracht.
Ist das überhaupt so möglich?
Kennt jemand die genaue Syntax hierfür?

Gruß,
Andreas

Content-ID: 180765

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

Ausgedruckt am: 16.12.2024 um 20:12 Uhr

Skyemugen
Skyemugen 20.02.2012 um 11:31:13 Uhr
Goto Top
Aloha,

Windows - Frage ... eigentlich gehört das ja in den Batch-Bereich ...

zu deinem Problem:

for /F peng bumm, wenn dann in diesem Falle nur for, da du mit /F eine andere Funktionsweise hast, die a] die umstehenden (vor text1 und nach text3) Zollzeichen als eines betrachten und b] ohne delims= sowieso default bei Leerzeichen getrennt wird und ohne tokens=* [wobei es hier zu einer funktionalen Fehlermeldung kommen würde] sowieso nur Teil 1 ausgegeben wird.

for /f macht nur beim Arbeiten mit Trennzeichen und/oder Befehlen Sinn

greetz André
pgmende
pgmende 20.02.2012 um 12:39:34 Uhr
Goto Top
Hallo André,

dank für die Hilfestellung.

Der Befehl

FOR %%I IN (text1, text2, text3) DO call :testen %%I

funktioniert.
Beim probieren mit Tokens=* und Delims=, (die Texte waren dann in Anführungszeichen gesetzt) hat es keine Fehlermeldung gegeben - es wurde immer nur der erste Eintrag benutzt.

Gruß,
Andreas
Skyemugen
Skyemugen 20.02.2012 um 13:14:58 Uhr
Goto Top
Zitat von @pgmende:
Beim probieren mit Tokens=* und Delims=, (die Texte waren dann in Anführungszeichen gesetzt) hat es keine Fehlermeldung gegeben
Hm, indeed, ich kann die Fehlermeldung nicht mehr reproduzieren, faszinierend, dieses Redmonder-System ... jedoch
es wurde immer nur der erste Eintrag benutzt.
20.02.2012 13:11:05,33 C:\Dokumente und Einstellungen\User
>@FOR /F "delims=" %I IN ("text1" "text2" "text3") DO @echo %I
text1" "text2" "text3

20.02.2012 13:11:14,74 C:\Dokumente und Einstellungen\User
>@FOR /F "tokens=*" %I IN ("text1" "text2" "text3") DO @echo %I
text1" "text2" "text3

greetz André