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?
windows-xp
batch
Misha Moroshko
la source
la source
Réponses:
Test pour un code retour supérieur ou égal à 1:
ou
ou testez un code retour égal à 0:
Vous pouvez utiliser d'autres commandes telles que celle
GOTO
où je montreecho
.la source
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. Essayerstart /wait
n'a pas fonctionné. La seule chose qui a fonctionné estif errorlevel 1 (...)
NEQ
plutôt que deEQU
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:
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.
la source
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.