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
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/
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/