En gros, disons que j'ai un fichier de commandes qui appelle myapp1.exe et que myapp1.exe se termine avec le code de sortie 1. Le fichier de commandes peut-il capturer ces informations et forcer le fichier de commandes à quitter avec ce même code de sortie ou exécuter une autre logique ?
@echo off
rem ...
set errorlevel=
MyApp1.exe
exit /b %errorlevel%
serait la variante explicite.
La réponse acceptée est correcte, mais si vous utilisez call
pour appeler un autre script batch, et que ce second script batch utilise SetLocal
, vous devrez peut-être utiliser une astuce d'analyse pour y parvenir. Si vous rencontrez ce problème, ajoutez le code suivant avant votre exit b
:
ENDLOCAL&set myvariable=%myvariable%
Maintenant, la valeur de myvariable
est mise à la disposition du contexte appelant et vous pouvez voir la valeur dans l'autre script.
Références:
https://stackoverflow.com/a/16167938/8959
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/
Vous pouvez essayer d'utiliser errorlevel
s. Quelques informations supplémentaires ici .
% ERRORLEVEL% stocke la valeur de retour de la dernière commande exécutée
call program.exe
echo program.exe returns "%ERRORLEVEL%"
IF %ERRORLEVEL% NEQ 0 (
echo FAILED
)