Windowsバッチファイルの「EXIT」と「GOTO :EOF」の違い
目次
はじめに
バッチファイルでスクリプトの実行を途中で終了する場合、「EXIT
」または「GOTO :EOF
」を使用しますが、「EXIT
」と「GOTO :EOF
」は動作に違いがあります。
「GOTO :EOF」コマンド
EOF
はバッチファイルの最後を表す暗黙のラベルです。
GOTO :EOF
コマンドを実行するとバッチファイルの末尾に制御を移すため、スクリプトが終了します。
@echo off
echo テスト1
pause
goto :eof
echo テスト2
pause
テスト1
続行するには何かキーを押してください . . .
上記スクリプトでは「テスト1」を表示した後、EOF(ファイルの末尾)に制御が移動するため「テスト2」は表示せず処理が終了します。
「EXIT」コマンド
EXIT
コマンドはバッチファイルの処理を明示的に終了します。
@echo off
echo テスト1
pause
exit
echo テスト2
pause
テスト1
続行するには何かキーを押してください . . .
上記スクリプトは「テスト1」を表示した後、EXIT
コマンドにより処理が終了します。
「EXIT」と「GOTO :EOF」の違い
単体で動作させた場合は両者に違いはありませんが、バッチファイルが他のバッチファイルから呼び出される場合は動作に違いがあります。
GOTO :EOF
コマンドを使用したバッチファイルは、他のバッチファイルから呼び出された場合、呼び出し元に制御を戻します。
コマンドプロンプトから起動した場合は、バッチ処理終了後にコマンドプロンプトの操作を続けることが可能です。
C:\> sample_eof.bat
テスト1
続行するには何かキーを押してください . . .
C:\>
EXIT
コマンドを使用したバッチファイルは、他のバッチファイルから呼び出された場合、呼び出し元に制御を戻すのではなく、実行中のプロセス自体を終了します。
コマンドプロンプトから起動した場合は、コマンドプロンプト(Cmd.exe
)が終了します。
C:\> sample_exit.bat
テスト1
続行するには何かキーを押してください . . .