次のようないくつかのコマンドを含むバッチファイルがあります。
XCOPY
DEL
RMDIR
anotherBatch.bat
XCOPY
DEL
RMDIR
ご覧のとおり、その間に別のバッチファイル(anotherBatch.bat)が呼び出され、他の処理が行われます。
今私の質問は、anotherBatchが実行された後、コントロールが元のバッチファイルに戻ることはなく、そこで終了することです。
コントロールが確実に戻されるようにするにはどうすればよいですか?
次のようないくつかのコマンドを含むバッチファイルがあります。
XCOPY
DEL
RMDIR
anotherBatch.bat
XCOPY
DEL
RMDIR
ご覧のとおり、その間に別のバッチファイル(anotherBatch.bat)が呼び出され、他の処理が行われます。
今私の質問は、anotherBatchが実行された後、コントロールが元のバッチファイルに戻ることはなく、そこで終了することです。
コントロールが確実に戻されるようにするにはどうすればよいですか?
バッチSUBROUTINEは、CALLコマンドを介して呼び出される別のバッチファイルです。
CALL subroutineName Param1 Param2
サブルーチンは、呼び出し元のコードの同じファイルに配置できます。これは、名前の前にコロンを付けることで示されます。
CALL :SubroutineInThisFile Param1 Param2
. . . .
. . . .
. . . .
EXIT /B
:SubroutineInThisFile
. . .
EXIT /B
:AnotherSubroutine
. . .
EXIT /B
EXIT / Bコマンド(EXITだけでなく)は、同じファイル内のサブルーチンの終了をマークするために使用されます。これは、メインプログラムでも実行する必要があります。
あなたの例のように、別のバッチファイルがCALLコマンドなしで呼び出された場合、最終的な結果は「別のファイルへのGOTO」に似ています。呼び出されたファイルが終了すると、プロセスはその時点で終了します。私は以前、この方法で呼び出されたバッチファイルを(「サブルーチン」ではなく)「オーバーレイ」と呼んでいました。
他のバッチファイルを明示的に呼び出す必要があります
call anotherBatch.bat