91 votes

Le fichier batch s'arrête après la première commande

J'utilise l'outil 'HTML Match' pour comparer deux fichiers HTML. Comme je dois comparer de nombreux fichiers, je crée un fichier batch comme le suivant. Par exemple, je ne donne que cinq ensembles de fichiers.

 cd "C:\Program Files\HTML Match"
HTMLMATCH.EXE "D:\Raj\compare1\a1.html" "D:\Raj\compare2\a1.html" "D:\Raj\compare_res\a1.html"
HTMLMATCH.EXE "D:\Raj\compare1\a2.html" "D:\Raj\compare2\a2.html" "D:\Raj\compare_res\a2.html"
HTMLMATCH.EXE "D:\Raj\compare1\a3.html" "D:\Raj\compare2\a3.html" "D:\Raj\compare_res\a3.html"
HTMLMATCH.EXE "D:\Raj\compare1\a4.html" "D:\Raj\compare2\a4.html" "D:\Raj\compare_res\a4.html"
HTMLMATCH.EXE "D:\Raj\compare1\a5.html" "D:\Raj\compare2\a5.html" "D:\Raj\compare_res\a5.html"

Lorsque j'exécute ce fichier batch dans une invite cmd, seule la première ligne, c'est-à-dire uniquement 'a1.html', est comparée et produit un résultat. Puis l'exécution s'arrête.

150voto

Ben Points 23834

Ajoutez call devant les commandes que vous exécutez.

Vous pouvez également changer cela en une boucle for, donc :

 FOR /L %%i in (1,1,5) DO CALL HTMLMATCH.EXE D:\Raj\compare%%i%%\a%%i%%.html D:\Raj\compare%%i%%\a%%i%%.html D:\Raj\compare_res\a%%i%%.html

84voto

BJoe Points 749

La réponse à votre problème est d'écrire CALL HTMLMATCH.EXE (et le reste des paramètres). Utilisez simplement CALL devant chaque commande exécutable dans le fichier batch.

-1voto

Adrian K. Points 1343

Vous n'êtes pas obligé d'insérer des guillemets là où il n'y a pas d'espace entre les deux.

Essaye ça :

 HTMLMATCH.EXE D:\Raj\compare1\a1.html D:\Raj\compare2\a1.html D:\Raj\compare_res\a1.html

Peut-être que cela résoudra votre problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X