Dans un fichier batch sous Windows, j'utilise 7-zip comme ceci:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Comment puis-je vérifier le code de sortie de 7z
et prendre les mesures appropriées?
Dans un fichier batch sous Windows, j'utilise 7-zip comme ceci:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Comment puis-je vérifier le code de sortie de 7z
et prendre les mesures appropriées?
Réponses:
Test pour un code retour supérieur ou égal à 1:
if ERRORLEVEL 1 echo Error
ou
if %ERRORLEVEL% GEQ 1 echo Error
ou testez un code retour égal à 0:
if %ERRORLEVEL% EQU 0 echo OK
Vous pouvez utiliser d'autres commandes telles que celle GOTO
où je montre echo
.
0 was unexpected this time.
%ERRORLEVEL%
est 0 même si une erreur s'est produite. Cela s'est produit lors de l'enregistrement %ERRORLEVEL%
d'un fichier cmd. Essayer start /wait
n'a pas fonctionné. La seule chose qui a fonctionné estif errorlevel 1 (...)
NEQ
plutôt que de EQU
prendre en charge la détection des codes de retour négatifs? Aucune idée si Windows XP fait cela, mais c'est une chose sous Windows moderne…
Cela fonctionne vraiment lorsque vous avez: App1.exe appelle -> .bat qui s'exécute -> app2.exe
App2 renvoie errorlevel 1 ... mais vous devez capturer cela dans le fichier .bat et le relancer à app1 ... sinon .bat mange le niveau d'erreur et app1 ne sait jamais.
Méthode:
En .bat:
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
Ceci est une vérification après app2 pour errorlevel. Si> 0, le fichier .bat se ferme et définit le niveau d'erreur sur 1 pour l'app1 appelant.
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
.
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
pourrait être une meilleure option. Mais vous devez vraiment savoir ce que le programme renvoie en cas d'erreur. Certains programmes renvoient certains codes non nuls pour certains types de réussite.