web-dev-qa-db-fra.com

Obtenir le code d'erreur à partir d'un fichier de commandes

J'ai un fichier batch qui exécute quelques exécutables, et je veux qu'il se termine en cas de succès, mais arrêtez si le code de sortie <> 0. Comment dois-je procéder?

35
Dlongnecker

On dirait que vous voudrez la commande "If Errorlevel". En supposant que votre exécutable retourne un code de sortie différent de 0 en cas d'échec, vous faites quelque chose comme:

myProgram.exe
if errorlevel 1 goto somethingbad
echo Success!
exit
:somethingbad
echo Something Bad Happened.

La vérification du niveau d'erreur est effectuée comme une vérification supérieure ou égale, donc toute valeur de sortie différente de 0 déclenchera le saut. Par conséquent, si vous devez vérifier plusieurs valeurs de sortie spécifiques, vous devez d'abord rechercher la plus élevée.

43
Hellion

Vous pouvez également utiliser symboles de traitement conditionnel pour effectuer une simple vérification de réussite/échec. Par exemple:

myProgram.exe && echo Done!

imprimerait Done! seulement si myProgram.exe retourné avec le niveau d'erreur 0.

myProgram.exe || PAUSE

entraînerait une pause du fichier de commandes si myProgram.exe renvoie un niveau d'erreur différent de zéro.

27
Cheran Shunmugavel