Inhalte von FOR in Variable geht nicht !?
Hallo Ihr Lieben,
Ich habe eine Liste wo Dateien kopiert werden sollen, die so aufgebaut ist:
; Source-Pfad\, ,Zielpfad\, ,Dateiname oder *.* wenn ALLE!
Beispiel:
Software\Video und Audio\VLC Video Lan Client\, ,Software\Video und Audio\VLC Video Lan Client\, ,*.*
Mein Batch funktioneirt grundsätzlich gut!
Nun will ich noch der Einfachheit halber abprüfen ob in der 3 Spalte (Variable %%k) was drinnen steht.
Wenn nicht würde ich genre ausl Zielpfad den Inhalt aus Spalte 1 (%%i) verwenden.
Leider wird mir mit dem Code
die Variable %Z_V% nicht befüllt, sie ist immer leer!!
Habt ihr einen Tipp ?
Oder einen Vorschlag, wie ich das einfacher lösen kann ?
Ich habe eine Liste wo Dateien kopiert werden sollen, die so aufgebaut ist:
; Source-Pfad\, ,Zielpfad\, ,Dateiname oder *.* wenn ALLE!
Beispiel:
Software\Video und Audio\VLC Video Lan Client\, ,Software\Video und Audio\VLC Video Lan Client\, ,*.*
Mein Batch funktioneirt grundsätzlich gut!
Nun will ich noch der Einfachheit halber abprüfen ob in der 3 Spalte (Variable %%k) was drinnen steht.
Wenn nicht würde ich genre ausl Zielpfad den Inhalt aus Spalte 1 (%%i) verwenden.
Leider wird mir mit dem Code
For /F "eol=; delims=, tokens=1-6" %%i in (%liste%) do (
if %%k==x set "Z_V=%%k"
if not %%k==x set "Z_V=%%i"
die Variable %Z_V% nicht befüllt, sie ist immer leer!!
Habt ihr einen Tipp ?
Oder einen Vorschlag, wie ich das einfacher lösen kann ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 262843
Url: https://administrator.de/forum/inhalte-von-for-in-variable-geht-nicht-262843.html
Ausgedruckt am: 23.12.2024 um 07:12 Uhr
9 Kommentare
Neuester Kommentar
die Variable %Z_V% nicht befüllt, sie ist immer leer!!
Stichwort Delayed ExpansionExkurs (verzögerte) Variablenerweiterung
Gruß jodel32
Zitat von @pbelcl:
Danke Jodel32, dann werde ich das wohl mit einem Call auf eine Unterbatch lösen müssen!
Wieso ? Nö ...Danke Jodel32, dann werde ich das wohl mit einem Call auf eine Unterbatch lösen müssen!
@echo Off & setlocal enabledelayedexpansion
For /F "eol=; tokens=1-6 delims=," %%a in (%liste%) do (
if "%%c"=="" (set "Z_V=%%a") else (set "Z_V=%%c")
echo !Z_V!
)
Ja, du hast keine Anführungszeichen anstatt Prozentzeichen um die Variable gesetzt !!!
Les doch bitte das obig verlinkte Tutorial zu delayed expansion !
Gruß jodel32
echo !Z_V!
Les doch bitte das obig verlinkte Tutorial zu delayed expansion !
Gruß jodel32
och mönsch Google kaputt ? http://ss64.com/nt/delayedexpansion.html