バッチ スクリプトを使用したタスクを探していました。
build.bat を呼び出すメイン バッチ スクリプトがあります。ビルド スクリプトが呼び出されると ( start cmd /k build.bat)、ビルドが実行されます。その後、メインに戻って残りのタスクを実行します。ビルドには非常に時間がかかります。
ビルドを開始して main に戻り、main でいくつかのタスクを完了して Build.bat に戻ることは可能ですか?
ありがとう !
バッチ スクリプトを使用したタスクを探していました。
build.bat を呼び出すメイン バッチ スクリプトがあります。ビルド スクリプトが呼び出されると ( start cmd /k build.bat)、ビルドが実行されます。その後、メインに戻って残りのタスクを実行します。ビルドには非常に時間がかかります。
ビルドを開始して main に戻り、main でいくつかのタスクを完了して Build.bat に戻ることは可能ですか?
ありがとう !
そうではありません。並行して実行するメイン スクリプトの部分を抽出する必要があります。前後にホップすることはできません。
Main --> build task --> more main
--> part of main |
あなたはできます-ある意味で。
次のようなバッチを自分で設定しますWAIT4F.BAT
@ECHO OFF
:: Wait for file %1
IF "%~1"=="" GOTO :eof
:loop
IF NOT EXIST "%~1" choice /t 1 /d y /n >NUL&GOTO loop
挿入CALL WAIT4F filename
するだけで、別のバッチがファイルを作成するまで待機させることができます (おそらくステップの完了時)。
このようにして、並列プロセスがタスクを完了するまでバッチが一時停止するため、2 つ (またはそれ以上) のバッチを同時に実行できます。また、作成されたファイルには、バッチが通信できるようにするための情報 (たとえば、エラーレベルなど) を含めることができるという利点もあります。
個人的には、%temp% にフラグ ファイルを作成します。
また、Vista より前のバージョンを使用している場合PING -n 2 127.0.0.1 >nul
は、CHOICE コマンドの代わりに使用します (これは単なる遅延です)。
「コマンド ウィンドウ」はおそらくあなたが探している言葉ではありません。
しかし、はい、1 つの .bat ファイルが別の .bat ファイルを呼び出してから、最初のファイルに戻ることができます。
魔法は、子の .bat または .cmd ファイルを呼び出すときにキーワード「call」を使用することです。
PS:
ソフトウェアのビルドを行っている場合は、.bat ファイルを使用する代わりに「Makefile」スクリプトを使用することを検討することを強くお勧めします。私見では...