web-dev-qa-db-fra.com

comment puis-je continuer mon fichier .bat après une erreur

J'ai un fichier .bat dans Windows qui fait trois choses

cmd1 arg1 arg2
cmd2 arg3 
cmd3 arg4 arg5 arg6

Parfois, cmd1 peut échouer et c'est très bien, je voudrais continuer et exécuter cmd2 et cmd3. Mais ma batte s'arrête à cmd1. Comment puis-je éviter ça?

Mettez à jour pour plus de clarté - ce ne sont pas d'autres fichiers .bat, ce sont des commandes exe. J'espère que je n'aurai pas besoin de construire une arborescence de fichiers .bat pour y parvenir.

25
ConfusedNoob

Une autre option consiste à utiliser l'amperstand (&)

cmd1 & cmd2 & cmd3

Si vous utilisez un double, il ne sera exécuté que si la commande précédente se termine avec succès (%ERRORLEVEL%==0)

cmd1 && cmd2 && cmd3

Si vous utilisez un double tuyau (||), il n'exécutera la commande suivante que si la précédente s'est terminée avec un code d'erreur (%ERRORLEVEL% NEQ 0)

cmd1 || cmd2 || cmd3

15
Canadian Luke

Cela a fonctionné pour moi:

cmd.exe /c cmd1 arg1
cmd2
...

Ceci utilise cmd.exe pour exécuter la commande dans une nouvelle instance de l'interpréteur de commandes Windows. Ainsi, une commande ayant échoué n'interrompt pas le script de traitement par lots. L’indicateur /c indique à l’interprète de se terminer dès l’exécution de la commande.

cmd2 s'exécute même si la première commande échoue. Voir cmd /? à partir de l'invite de commande Windows pour plus d'informations.

9
Joseph238

Présumant les cmds sont d’autres fichiers .bat, empilez les commandes comme ceci:

 call cmd1
 call cmd2
 call cmd3
9
mdpc