wiefreak
Goto Top

For-Laufvariablen an andere Übergeben

Guten Morgen,
ich bin etwas verwirrt,

ich habe folgende Batchdatei ausgeführt

for /f "usebackq tokens=1-5 delims=;" %%a in ("datei.csv") do @(  
echo %%a>>1.txt
echo %%b>>2.txt
echo %%c>>3.txt
)
Es hat alles funktioniert und jede Spalte wurde genau wie ich es wollte in eine Extra-Datei geschrieben

Nun wollte ich das ganze aber noch etwas erweitern und dafür die Laufvariablen (%%a , %%b usw.) an andere Variablen übergeben.
Wenn ich jetzt aber diesen Code ausführe:
for /f "usebackq tokens=1-5 delims=;" %%a in ("datei.csv") do @(  
set "Eins=%%a"  
set "zwei=%%b"  
set "drei=%%c"  
echo %eins%
echo %zwei%
echo %drei%
pause
)
erhalte ich immer nur die Ausgabe:

ECHO ist Angeschaltet (ON)
ECHO ist Angeschaltet (ON)
ECHO ist Angeschaltet (ON)
ECHO ist Angeschaltet (ON)
ECHO ist Angeschaltet (ON)
...

als ob die Variable leer wäre und nur echo ausgeführt werden würde.

Wie kann ich die Laufvariablen an Andere Variablen übergeben?
Danke im Vorraus,
Wiefreak

Content-ID: 214372

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

colinardo
Lösung colinardo 15.08.2013, aktualisiert am 29.07.2014 um 21:58:08 Uhr
Goto Top
Hallo WieFrieak,
Stichwort ENABLEDELAYEDEXPANSION:
for /f "usebackq tokens=1-5 delims=;" %%a in ("datei.csv") do @(  
setlocal ENABLEDELAYEDEXPANSION
set "Eins=%%a"  
set "zwei=%%b"  
set "drei=%%c"  
echo !eins!
echo !zwei!
echo !drei!
pause
)

Grüße Uwe
bastla
Lösung bastla 15.08.2013, aktualisiert am 29.07.2014 um 21:58:09 Uhr
Goto Top
Hallo Wiefreak!

Warum willst Du "andere Variable" verwenden?

Wenn es wirklich einen guten Grund dafür gibt, ist Dein Stichwort "delayedExpansion".

Grüße
bastla