In einer Batch-Datei unter Windows verwende ich 7-zip wie folgt :
...\right_path\7z a output_file_name.zip file_to_be_compressed
Wie kann ich den Beendigungscode von überprüfen 7z
und die entsprechenden Maßnahmen ergreifen?
windows-xp
batch
Mischa Moroschko
quelle
quelle
Antworten:
Auf Rückkehrcode größer oder gleich 1 prüfen:
oder
oder auf einen Rückkehrcode gleich 0 testen:
Sie können andere Befehle verwenden, z. B.
GOTO
wo ich zeigeecho
.quelle
0 was unexpected this time.
%ERRORLEVEL%
0 ist, obwohl ein Fehler aufgetreten ist. Passiert beim Einchecken%ERRORLEVEL%
einer cmd-Datei. Der Versuchstart /wait
hat nicht funktioniert. Das einzige, was funktioniert hat, istif errorlevel 1 (...)
NEQ
anstatt sieEQU
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:
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.
quelle
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.