sisyphusloughs
Goto Top

Wie kann ich mit kommagetrennten Variabelinhalten Schleifen steuern? (Windows-CMD-Script)

Hallo Batchexperten!

Ich versuche über ein Windows-Batchscript pro Version eine Reihe von Befehlen mit einer For-Schleife auszuführen. Ich komme aber leider bei der Syntax nicht weiter. Hier ist mein Versuch:
@echo off & setlocal EnableDelayedExpansion
set VERSION=1200,1210,1300
FOR /F "DELIMS=," %%i in ( 'echo %VERSION%' ) do (   
	echo %%i
	echo Mach' etwas...  
	)

Es wird leider nur ein Durchlauf gemacht. Interessanterweise werden mit echo %%i die Kommas durch Leerzeichen ersetzt.

Kann mir jemand Starthilfe geben?

Content-Key: 443637

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

Printed on: April 25, 2024 at 16:04 o'clock

Mitglied: 139374
Solution 139374 Apr 24, 2019 updated at 11:30:26 (UTC)
Goto Top
Du hast die For /f Schleife noch nicht ganz verstanden. Diese arbeitet zeilenweise und delims bestimmt wie die Zeile in Tokens unterteilt wird, For /f durchläuft also nicht die Tokens sondern nur die Zeilen und das es hier nur eine Zeile ist, auch nur ein Durchlauf. Diese Tokens sind dann als aufsteigende Buchstabenreihenfolge %%i %%j %%k usw. für die jeweilige Zeile verfügbar.

Für dein Konstrukt wäre hier eine einfache For Schleife ohne /f angebracht
echo off 
set VERSION=1200 1210 1300
FOR %%a in (%VERSION%) do ( 
	echo %%a
)

Hier mal reinlesen
Tutorial zur FOR-Schleife
Member: Sisyphusloughs
Sisyphusloughs Apr 24, 2019 at 11:29:29 (UTC)
Goto Top
Danke! und es funktioniert auch mit Kommas!
Mitglied: 139374
139374 Apr 24, 2019 updated at 11:34:53 (UTC)
Goto Top
Jepp, sollte dir nur noch die Alternative aufzeigen, einfach mal hier nachlesen:
https://ss64.com/nt/for.html