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?
Mise à jour pour plus de clarté - ce ne sont pas d'autres fichiers .bat, ce sont des commandes exe. J'espère que je n'ai pas besoin de construire une arborescence de fichiers .bat juste pour y parvenir.
windows
command-line
batch-file
ConfusedNoob
la source
la source
cmd /C
.Réponses:
Une autre option consiste à utiliser l'amperstand (
&
)cmd1 & cmd2 & cmd3
Si vous utilisez un double, il ne continue que si la commande précédente se termine avec succès (
%ERRORLEVEL%==0
)cmd1 && cmd2 && cmd3
Si vous utilisez un double pipe (
||
), il n'exécute la commande suivante que si la précédente se termine avec un code d'erreur (%ERRORLEVEL% NEQ 0
)cmd1 || cmd2 || cmd3
la source
CHKDSK
commande, avec des arguments, qui fonctionne. Je tapecheck D: & check E: & check F:
et ça marche. Les arguments du fichier BAT incluent les/perf /f /r /b /scan
commutateursPrésumer les cmds sont d'autres fichiers .bat empiler les commandes comme ceci:
la source
Cela a fonctionné pour moi:
Cela permet
cmd.exe
d'exécuter la commande dans une nouvelle instance de l'interpréteur de commandes Windows, donc une commande ayant échoué n'interrompt pas le script de commandes. L'/c
indicateur indique à l'interpréteur de se terminer dès que la commande a terminé son exécution.cmd2
s'exécute même si la première commande échoue. Voir àcmd /?
partir de l'invite de commandes Windows pour plus d'informations.la source