Exécuter des fichiers batch de manière séquentielle
Je vous demande a tous comment faire pour exécuter les fichiers de commandes de manière séquentielle dans Windows.
J'ai essayé :
start /w batchfile_1.bat
start /w batchfile_2.bat
..
start /w batchfile_n.bat
mais je dois fermer la précédente .fichier bat processus manuellement (par exemple en cliquant) avant de continuer dans la suivante.
Est-il une solution pour faire cela automatiquement sans moi, le manuel de clôture précédent .batte de programme à chaque fois?
Merci beaucoup.
Avez-vous essayé tout simplement de les exécuter sans
Je voudrais vérifier les solutions à cette question: Exécuter Plusieurs fichiers batch
Oui, sans start /w, ou uniquement à l'aide de démarrer, l' .les fichiers bat s'exécutent simultanément, successivement comme je le voulais. J'ai également utilisé des appels, mais aussi de rendre les plusieurs .les fichiers bat exécuter simultanément.
Non, l'essayer sans l'aide de
Bêtement mettre un vote serré, sans prêter plus d'attention aux commentaires. Désolé.
start /w
? Il a été un certain temps, mais ils doivent s'exécuter dans l'ordre, attendre les uns les autres à la fin, et pas dans de nouvelles fenêtres et ces nécessitant la saisie de l'utilisateur.Je voudrais vérifier les solutions à cette question: Exécuter Plusieurs fichiers batch
Oui, sans start /w, ou uniquement à l'aide de démarrer, l' .les fichiers bat s'exécutent simultanément, successivement comme je le voulais. J'ai également utilisé des appels, mais aussi de rendre les plusieurs .les fichiers bat exécuter simultanément.
Non, l'essayer sans l'aide de
start
ou call
à tous.Bêtement mettre un vote serré, sans prêter plus d'attention aux commentaires. Désolé.
OriginalL'auteur user1634603 | 2012-08-29
Vous devez vous connecter pour publier un commentaire.
Je voudrais vérifier les solutions à cette question: Exécuter Plusieurs fichiers batch
D'appel:
Par défaut, lorsque vous exécutez un fichier de commandes à partir d'un autre, le contrôle ne sera pas passer de nouveau à l'appel. C'est pourquoi vous devez utiliser l'appel.
En gros, si vous avez un lot comme ceci:
il sera seulement sortie
Si vous écrivez comme
toutefois, il sera de sortie
car après batch2 se termine, le programme de contrôle est passé à l'original de votre fichier de commandes.
call
ing) le second, le second s'exécute la troisième, et ainsi de suite. Si vous voulez être garanti dans l'ordre, c'est la seule façon de le faire qui va le faire; si l'on se bloque, il ne fera pas appel de la prochaine et de la chaîne d'exécution sera brisé.Mais qu'advient-il si l'OP (ou quelqu'un d'autre) a voulu plus tard modifier ou ajouter l'ordre des fichiers batch. Serait-ce le moyen de ne pas être plus facile? Où tous les fichiers de commandes sont exécutées à partir d'un fichier principal?
Le problème, c'est avec
call
il peut y avoir un problème avec l'un des fichiers de la série qui rend la sortie précoce, et les fichiers suivants seront toujours exécutées lorsque le contrôle revient à la "fiche principale". Vous ne pouvez pas garantir la séquence s'exécute strictement dans l'ordre. (Pas downvoting votre réponse, juste commenter.)Ah je vois, je suis un peu nouveau sur ce ainsi donc, je ne pense pas à ce sujet. Je suppose que cela ne peut fonctionner que si le fichier de commandes de l'ordre n'est pas exactement cruciale, mais elle a juste besoin d'être exécutés en même temps. Merci pour vos commentaires.
problème avec
call
..." Pas si vous utilisezEXIT /b
et vérifiez que le code d'erreur est de 0 avant d'exécuter le fichier suivant.OriginalL'auteur Ishikawa
Si vous êtes dans l'amour avec l'aide de
START
, vous pourriez avoir votre lot de fichiers avec l'EXIT
de commande. Que va fermer les fenêtres créées par lastart
commande.EXIT /b
avec les fichiers par lots vousSTART
ed. Il n'est pas de fermer les fenêtres, et est destinée à passer le niveau de retour à l'appel de fichier. Ce qui est impossible parce que vous avez lancé un distinct cmd.exe l'environnement en utilisant desSTART
.Merci pour la suggestion. Cependant, en utilisant la commande exit en effet les fermez la fenêtre qui apparaît lorsque je démarre le .chauve-souris, mais le processus de devenir simultanément exécuté, et non de manière séquentielle comme je voulais être.
OriginalL'auteur James K
Je ne suis pas sûr, mais en fonction de vos commentaires, la suite semble se produire lorsque vous exécutez la séquence de
START
commandes:Un
START /W
commande est invoquée et commence un fichier de commandes.Le fichier de commandes commence à s'exécuter et exécute un programme.
Le fichier de commandes de finitions et de la fenêtre de sa console reste ouverte, mais le programme continue son exécution.
La
START /W
commande qui a été utilisé pour exécuter le fichier de commandes est toujours en cours d'exécution parce que la fenêtre de la console reste ouverte.Vous attendez jusqu'à ce que le programme se termine, puis vous fermez la fenêtre de la console, et puis la prochaine
START /W
commande est invoquée, et tout est répété.Maintenant, si vous placez
EXIT
à la fin de chaque fichier de commandes que vous souhaitez exécuter séquentiellement, ce qui rend la situation encore pire, car il provoque la fenêtre de la console de fermer après le batch script se termine, et qui à son tour se termine le correspondantSTART /W
de commande et provoque un autre pour s'exécuter, même si le programme appelé par le script de commandes peuvent encore être en cours d'exécution. Et donc l'effet est que les scripts batch (ou, plutôt, les programmes exécutés par eux) exécuter simultanément, plutôt que de façon séquentielle.Je pense que, si cela peut être résolu à tous, vous avez besoin de déplacer le
START /W
de commande et de le mettre dans tous les fichiers batch en face de (tous les) commande que le fichier de commandes s'exécute et ne pas attendre pour la résiliation de. C'est, si votrebatchfile_1.bat
exécute uneprogram.exe
, modifiez la ligne de commande pourSTART /W program.exe
, et de même pour d'autres commandes dans d'autres fichiers batch.OriginalL'auteur Andriy M