Hallo.
Ich hab ein Problem damit, das eine Variable nicht in einem Text geschrieben wenn, falls der Errorlevel >=1 ist.
Folgende Zeilen dazu:
Setlocal EnableDelayedExpansion
CD /D "Z:\Backups 2015"
FOR /F "tokens=* delims= " %%A in ('dir /b') do (
"C:\Program Files\7-Zip\7z.exe" t "%%A"
if errorlevel 1 echo %%A >> "H:\Test7z.txt"
)
Die Zeilen sollen die Archive *.7z in dem Ordner "Backups 2015" testen, und bei einem Fehler den betreffenden Dateinamen in "H:\Test7z.txt" eintragen. Dieses mit >>, weil es natürlich angehängt werden muss, um eben alle fehlerhaften Dateien zu lesen.
Was geht nicht:
Scheinbar wird "if errorlevel.........." ignoriert. Ausgabe ist dann auch:
if errorlevel 1 echo backupdatei 1.7z 1>>"H:\Test7z.txt".
wobei mich das
1>>"H:\..........." irritiert
Danke!
EDIT:
Ich bin da etwas verwirrt:
If Errorlevel 1
kümmert sich nur um die Variable, also es werden beispielsweise "Januar Komplett!" als "Januar Komplett" ausgelesen, das dann einen Fehler ausgibt, das diese Datei nicht vorhanden ist.
If %Errorlevel% EQU 1
ignoriert komplett die Zeile ab "if....." (siehe oben)
Das heisst, ausgeführt wird augenscheinlich nur:
FOR /F "tokens=* delims= " %%A in ('dir /b') do (
"C:\Program Files\7-Zip\7z.exe" t "%%A"
das "if %errorlevel%....." ist komplett weg.