Comment puis-je obtenir un fichier de commandes windows pour mettre en pause pendant un exécutable s'exécute?
Je suis en train d'écrire un fichier de commandes, dans ce que j'appelle un exécutable à exécuter. Maintenant, les déclarations après l'appel de l'EXE ne doit pas exécuter jusqu'à la EXE termine son exécution. Comment puis-je le faire dans le fichier de commandes (sur Windows)?
Je pense que cela dépend un peu sur les applications que vous êtes en cours d'exécution. Si l'application est un lanceur qui lance d'autres services ou d'une interface graphique, alors je pense qu'il y a peu de choses que vous pouvez faire sans l'écriture d'une application de suivi des processus et/ou windows.
OriginalL'auteur | 2008-12-08
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur aphoria
Il dépend de la façon dont l' .exe fonctionne. J'ai peur de ne pas avoir tous les détails techniques et de la terminologie, mais certaines .les fichiers exe sera de retour le contrôle de la session immédiatement après qu'ils ont commencé, tandis que d'autres ne reviendront pas de contrôle jusqu'à ce que une fois le programme terminé.
Le deuxième cas est facile car les commandes de fin dans le fichier ne s'exécute jusqu'à ce que les premiers ont terminé, donc je vais supposer que vous êtes face à des cas #1.
Une simple solution de contournement/hack si l'exécution a (à peu près) la même quantité de temps chaque fois qu'il exécute est d'utiliser une commande ping avec un retard.
Cela va forcer la commande ping pour exécuter une seule fois avec un 120000ms (2 min) de retard.
Il y a aussi un bon article sur un plus complexe (mais méthode plus fiable) sur fpschultze.de avec beaucoup plus de détails. En bref, vous interrogez la liste des tâches à la recherche pour le fichier exécutable que vous êtes en attente pour les. Dès qu'il n'est pas là que vous poursuivez avec le fichier de commandes. Il utilise aussi le ping méthode, mais d'une manière différente.
fonctionne parfaitement avec votre correction.
Désolé, mais la proposition de ping solution de contournement est tout simplement terrible. Elle est sujette à des erreurs et difficile à comprendre. Il y a loin supérieure des moyens pour mettre en pause pendant un certain temps (par exemple, délai d'attente).
C'est pourquoi je l'ai appelé un hack.
ping 127.0.0.1 -n 13 > nul
attendre 12 secondes, à partir de stackoverflow.com/a/1672349/984471OriginalL'auteur kdmurray
Les instructions dans un fichier de commandes sont exécutées de manière séquentielle. Donc, si votre fichier de commandes ressemble:
Suivante est exécutée que si la première est terminée.
il dépend de la portée de la question. En général, dans un lot de fichiers, en général, vous mettez uniquement des outils en ligne de commande, pas d'outils graphiques.
Habituellement, mais pas toujours - j'ai un démarrage fichier de commandes dans mon travail à domicile virtual box qui commence le graphique VPN client (courrier, bug de l'outil, etc). Heureusement, il a un commutateur de ligne de commande qui sont à l'origine de pas revenir jusqu'à la fin que je n'arrivais pas à démarrer /attendre pour le faire. Mais votre point de vue est prise.
OriginalL'auteur Toon Krijthe
Vous pouvez utiliser le "début" de la commande avec le paramètre /attendre
appuyez sur start /? sur la ligne de commande pour plus de détails.
OriginalL'auteur
Ici est le processus très simple. Il suffit de garder la ligne suivante à attendre 10 secondes, puis continuer les autres commandes...
TIMEOUT /T 10
C'est tout ce que vous avez à faire. J'espère que vous apprécierez ma technique.
OriginalL'auteur Raghu
Vous pouvez utiliser
Dans le lot de script, mais je ne comprends pas votre question.
Pause
wais pour l'utilisateur d'appuyer sur une touche. Cela ne fonctionnera pas pour un script automatisé que l'utilisateur n'est pas là. James veut un script automatisé pour exécuter un programme, attendez la fin de la et de sortie, puis exécutez un deuxième programme.OriginalL'auteur Dean Rather