Antworten:
Auf Rückkehrcode größer oder gleich 1 prüfen:
if ERRORLEVEL 1 echo Error
oder
if %ERRORLEVEL% GEQ 1 echo Error
oder auf einen Rückkehrcode gleich 0 testen:
if %ERRORLEVEL% EQU 0 echo OK
Sie können andere Befehle verwenden, z. B. GOTO
wo ich zeige echo
.
0 was unexpected this time.
%ERRORLEVEL%
0 ist, obwohl ein Fehler aufgetreten ist. Passiert beim Einchecken %ERRORLEVEL%
einer cmd-Datei. Der Versuch start /wait
hat nicht funktioniert. Das einzige, was funktioniert hat, istif errorlevel 1 (...)
NEQ
anstatt sie EQU
zu unterstützen? Keine Ahnung, ob Windows XP das tut, aber es ist eine Sache auf modernen Windows ...
Das funktioniert wirklich, wenn Sie Folgendes haben: App1.exe ruft -> .bat auf, was ausgeführt wird -> app2.exe
App2 gibt Fehlerlevel 1 zurück, aber Sie müssen das in der .bat-Datei abfangen und es erneut auf app1 auslösen, sonst frisst .bat die Fehlerlevel und app1 weiß es nie.
Methode:
In .bat:
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
Dies ist eine Prüfung nach App2 auf Fehlerlevel. Wenn> 0, wird die .bat-Datei beendet und die Fehlerstufe für die aufrufende App1 auf 1 gesetzt.
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
.
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
könnte eine bessere Option sein. Aber Sie müssen wirklich wissen, was das Programm bei Fehlern zurückgibt. Einige Programme geben für bestimmte Erfolgsarten bestimmte Codes ungleich Null zurück.