web-dev-qa-db-ja.com

Windowsバッチファイル、コマンドが終了するのを待ちますか?

私はこれを理解できないようです。

ライブサイトを作成してオンラインで展開しています

バッチファイル:

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/

コマンドを実行していますhexo generate & hexo serve --draft約5〜10秒かかり、時間は異なります。理想的には、これが発生するのを待ってから、ライブサイトに移動します http:// localhost:40

このWindowsバッチコマンドがlocalhost:4000をすぐに自動的に開く理由はいくつかありますが

2
Vincent Tang

/ Bを使用して同じプロセスを維持し、/ waitを使用して最初のコマンドが終了するまで待機します。従うべきコマンドが他にない限り、2行目に/ waitは必要ありません。これが機能しない場合は、cmd/Kを残して実験してください。 runasは実行可能ファイルであり、バッチは終了するまで待機するため、startコマンドをまとめて実行することができます。

これがすべて機能しない場合は、5つのpingコマンドを挿入します。これは、±1秒待つ古典的な方法です。

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

これを突き刺します(完全にテストされていません)

@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