Je trouve généralement les opérateurs de concaténation de commandes conditionnelles beaucoup plus pratiques que ERRORLEVEL.
yourCommand && (
echo yourCommand was successful
) || (
echo yourCommand failed
)
Il y a une complication dont vous devez être conscient. La branche d'erreur se déclenchera si la dernière commande de la branche de succès soulève une erreur.
yourCommand && (
someCommandThatMayFail
) || (
echo This will fire if yourCommand or someCommandThatMayFail raises an error
)
La solution consiste à insérer une commande inoffensive dont le succès est garanti à la fin de la branche de succès. J'aime utiliser (call )
qui ne fait rien d'autre que de mettre le ERRORLEVEL à 0. Il existe un corollaire (call)
qui ne fait rien à part mettre le ERRORLEVEL à 1.
yourCommand && (
someCommandThatMayFail
(call )
) || (
echo This can only fire if yourCommand raises an error
)
Voir Un moyen infaillible de vérifier si le code de retour est différent de zéro (erreur) dans un fichier batch Windows. pour des exemples des subtilités nécessaires à l'utilisation de ERRORLEVEL pour détecter les erreurs.