web-dev-qa-db-fra.com

Fichier de commandes Windows, attendez-vous que la commande se termine?

Je n'arrive pas à comprendre cela.

Je crée un site et le déploie en ligne

fichier batch:

START cmd /K "runas /user:administrator & cd C:\users\MyName\dropbox\!!GIT_HUB_REPOS_ALL\tangycode.github.io & hexo generate & hexo serve --draft"


START /wait "" http://localhost:4000/

L’exécution de la commande hexo generate & hexo serve --draft prend environ 5 à 10 secondes, le temps varie. Idéalement, je veux attendre que cela se produise avant d’aller sur le site actif à http: // localhost: 4000

Certaines raisons pour lesquelles cette commande batch Windows ouvre automatiquement automatiquement localhost: 4000 tout de suite

2
Vincent Tang

J'utiliserais/B pour rester dans le même processus et/wait pour attendre que la première commande soit terminée. Vous n'avez pas besoin de/wait dans la deuxième ligne sauf s'il y a plus de commandes à suivre. Si cela ne fonctionne pas, essayez de laisser la cmd/K à l’écart. Étant donné que runas est un exécutable et que le lot attend jusqu'à la fin, il est possible de laisser tomber la commande de démarrage.

Si tout cela ne fonctionne pas, insérez 5 commandes ping, c’est le moyen classique d’attendre ± une seconde.

START /B /wait "runas /user:administrator & cd C:\users\MyName\dropbox\!!GIT_HUB_REPOS_ALL\tangycode.github.io & hexo generate & hexo serve --draft"


START /B "" http://localhost:4000/
2
peter

Je vais essayer de répondre à cela, (complètement non testé) .

@Echo Off

(Set SrcDir=%UserProfile%\dropbox\!!GIT_HUB_REPOS_ALL\tangycode.github.io)

If Not Exist "%SrcDir%\" Exit/B
Start "" /D"%SrcDir%" /Wait /B RunAs /User:administrator^
 "Cmd /C Start /Wait hexo generate & Start hexo serve --draft"

Start http://localhost:4000/
0
Compo