Batch - Variable wird nicht gesetzt
Guten Abend alle miteinander,
ich habe ein kl. Problem mit einer Variablen in einer Schleife. Und zwar wird dieser Varible kein Wert zugewiesen, obwohl einer in %%b drin steht!
Hier mal mein Script:
Es funktioniert alles bis auf die DO Anweisung in der IF - Anweisung!! Jemand eine Idee???
Gruß
Dani
ich habe ein kl. Problem mit einer Variablen in einer Schleife. Und zwar wird dieser Varible kein Wert zugewiesen, obwohl einer in %%b drin steht!
Hier mal mein Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@ECHO off & setlocal
::Variablen
SET nr=0
SET nr_full=4
SET dir_src=C:\WINDOWS\SYSVOL
SET dir_des=K:\Daten
SET name=NETLOGON
::Überprüft, ob die Datei vorhanden ist
FOR /l %%a IN (%nr_full%,-1,1) DO (
IF NOT EXIST "%dir_des%\%name%%%a.rar" SET nr=%%a
)
::Wenn 0, dann lege neues Archiv an.
IF "%nr%" == "0" (
FOR /f %%b IN ('DIR "%dir_des%\%name%*.rar" /b /o-d') DO SET archiv=%%b
Echo Variable Archiv ist %archiv%
::DEL "%dir_des%\%archiv%"
::rar.exe a -m5 -y "%dir_des%\%archiv%" "%dir_src%"
) ELSE (
rar.exe a -m5 -y "%dir_des%\%name%%nr%.rar" "%dir_src%"
)
pause
Gruß
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 50282
Url: https://administrator.de/forum/batch-variable-wird-nicht-gesetzt-50282.html
Ausgedruckt am: 10.04.2025 um 21:04 Uhr
13 Kommentare
Neuester Kommentar

Es funktioniert alles bis auf die DO Anweisung in der IF - Anweisung!!
setzt mal die " bei do set "anweisung"
Matthias
Hallo Dani!
Und so?
Grüße
bastla
[Edit] War schon etwas zu spät ... siehe daher besser unten [/Edit]
Und so?
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
IF "%nr%" == "0" (
FOR /f %%b IN ('DIR "%dir_des%\%name%*.rar" /b /o-d') DO <b>(</b>
SET archiv=%%b
Echo Variable Archiv ist %archiv%
::DEL "%dir_des%\%archiv%"
::rar.exe a -m5 -y "%dir_des%\%archiv%" "%dir_src%"
<b>)</b>
) ELSE (
rar.exe a -m5 -y "%dir_des%\%name%%nr%.rar" "%dir_src%"
)
Grüße
bastla
[Edit] War schon etwas zu spät ... siehe daher besser unten [/Edit]
Na ja, dann besser ganz auf die Zwischen-Variable %Archiv% verzichten.
HTH
Biber
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
IF "%nr%" == "0" (
FOR /f %%b IN ('DIR "%dir_des%\%name%*.rar" /b /o-d') DO (
Echo Variable Archiv ist %%b
::DEL "%dir_des%\%%b"
::rar.exe a -m5 -y "%dir_des%\%%b" "%dir_src%"
)
) ELSE (
rar.exe a -m5 -y "%dir_des%\%name%%nr%.rar" "%dir_src%"
)
HTH
Biber