Dans un fichier batch sous Windows, j'utilise 7-zip comme ça :
...\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 ça :
...\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 ?
Cela fonctionne vraiment quand vous avez : App1.exe appelle -> .bat qui s'exécute --> app2.exe
App2 renvoie le niveau d'erreur 1... mais vous devez l'attraper dans le .bat et le relancer à app1... sinon .bat mange le niveau d'erreur et app1 ne le sait jamais.
Méthode :
Dans .bat :
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
Il s'agit d'une vérification après l'application 2 pour le niveau d'erreur. Si > 0, alors le .bat se termine et met le niveau d'erreur à 1 pour l'application appelante.
J'avais un lot script dans le pipeline Teamcity et il n'est pas sorti après que son enfant script soit sorti avec le code 1.
Pour résoudre le problème, j'ai ajouté cette chaîne IF %ERRORLEVEL% NEQ 0 EXIT 1
après l'appel du script enfant.
main-script.bat
...some code
call child-script.bat
IF %ERRORLEVEL% NEQ 0 EXIT 1
...some code
Après l'appel script enfant, le résultat de la sortie est sauvegardé dans le fichier %ERRORLEVEL%
. S'il est sorti avec une erreur %ERRORLEVEL%
ne serait pas égal à 0 et dans ce cas nous sortons avec le code 1 (erreur).
**Essayez ça :
cd.>nul | call Your_7z_File.Bat && Goto :Next || Goto :Error
:: Or...
cd.>nul | ...\right_path\7z.exe a output_file_name.zip file_to_be_compressed && Goto :Next || Goto :Error**
1) Définir le niveau d'erreur == 0
cd.>nul
2) Redirection par |
pour appeler simultanément Your_7z_File.Bat
cd.>nul | call Your_7z_File.Bat
3) Laisse la sortie/niveau d'erreur à une exécution conditionnelle &&
y ||
filtrer l'action suivante
cd.>nul | call Your_7z_File.Bat && Goto :Next || Goto :Error
Vous pouvez également le tester en ligne de commande en ajoutant echo/
:
cd.>nul | call Your_7z_File.Bat && echo\Goto :Next || echo\Goto :Error
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.