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 ?
Please also mark the comments that contributed to the solution of the article
Content-Key: 262843
Url: https://administrator.de/contentid/262843
Printed on: April 27, 2024 at 00:04 o'clock
9 Comments
Latest comment
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