Errorlevel Problem ?
Tach'en erst mal ! ! !
Ich habe folgendes Problem, das mir der errorlevel immer falsch ausgegeben wird sobald ich ihn in einer If Abfrage ausgeben lasse.
Beispiel
So geht's:
und mit der If Abfrage gehts NICHT und ich bekomme bei der Ausgabe des errorlevels immer 0
Wo liegt da mein Fehler ?
Gruß
Malcom
Ich habe folgendes Problem, das mir der errorlevel immer falsch ausgegeben wird sobald ich ihn in einer If Abfrage ausgeben lasse.
Beispiel
So geht's:
if defined fullbackup (
echo ------------STARTE FULLBACKUP-----------------
SNAPSHOT c: g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log
echo ########################################## %errorlevel%
echo %errorlevel% >> %cd%\log\log_%tag%_backup.log
rem if %errorlevel% GEQ 1 goto fehlermail
)
und mit der If Abfrage gehts NICHT und ich bekomme bei der Ausgabe des errorlevels immer 0
echo ------------STARTE FULLBACKUP-----------------
SNAPSHOT c: g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log
echo ########################################## %errorlevel%
echo %errorlevel% >> %cd%\log\log_%tag%_backup.log
rem if %errorlevel% GEQ 1 goto fehlermail
Wo liegt da mein Fehler ?
Gruß
Malcom
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 208893
Url: https://administrator.de/contentid/208893
Ausgedruckt am: 16.11.2024 um 13:11 Uhr
7 Kommentare
Neuester Kommentar
so geht das ...
echo ------------STARTE FULLBACKUP-----------------
SNAPSHOT c: g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>log\log_%tag%_backup.log
set returncode=%errorlevel%
echo ########################################## %returncode%
echo %returncode% >>log\log_%tag%_backup.log
if %returncode% GEQ 1 goto fehlermail
Hallo malcomxcia!
In Deinem Beispiel oben wird ja vor dem
ausgeführt - wenn dies fehlerfrei gelungen ist, wird natürlich der Errorlevel 0 sein; daher, wie von collinardo empfohlen, zuerst den Errorlevel in eine Variable (im Beispiel %returncode%) schreiben und danach diese verwenden ...
BTW: %cd% in der Pfadangabe bringt eigentlich nix (außer natürlich, es wäre im Pfad zum aktuellen Ordner zB ein Leerzeichen enthalten - dann bringt's einen Fehler ) ...
Grüße
bastla
In Deinem Beispiel oben wird ja vor dem
if
noch die Zeileecho %errorlevel% >> %cd%\log\log_%tag%_backup.log
BTW: %cd% in der Pfadangabe bringt eigentlich nix (außer natürlich, es wäre im Pfad zum aktuellen Ordner zB ein Leerzeichen enthalten - dann bringt's einen Fehler ) ...
Grüße
bastla
ah OK jetzt verstanden, aber deine zwei Code-Abschnitte im letzten Post haben keinerlei Unterschiede....
hier musst du delayed expansion benutzen:
Variablen innerhalb von Klammerausdrücken müssen mit "Delayed Expansion" expandiert werden.
hier musst du delayed expansion benutzen:
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "fullbackup=True"
if defined fullbackup (
SNAPSHOT c: g:\backup\server\%tag%_$computername_$disk.sna -L40000 >>%cd%\log\log_%tag%_backup.log
set returncode=!errorlevel!
echo ########################################## !returncode!
)
pause