exit - プログラムを終了する
exitコマンドとは
exitコマンドは、バッチファイルやコマンドプロンプトを終了させることができるコマンドです。
このページでは、exitコマンドの基本的な使い方からオプションの設定方法まで分かり易く説明しています。
exitコマンドの使い方
exitコマンドの基本的な使い方は以下の通りです。
exit [/b] <終了コード>
| オプション | 説明 |
|---|---|
/b | exitコマンドを実行したバッチファイルの処理を終了します。 |
<終了コード> | 終了コードを指定します。未指定の場合、数値以外を指定した場合は0として扱われます。 |
オプションを指定せず使用することができ、その場合はexitコマンドは何もせずに終了します。
上記のコマンドを実行すると、開いているコマンドプロンプトが終了します。
また、オプションを指定しなかった場合、callやstartコマンドで呼び出した先のバッチファイル内のコマンドであっても、コマンドプロンプトは終了します。
@echo off
setlocal
call callee.cmd
rem 以下のコマンドは実行されない
pause
endlocal
@echo off
setlocal
exit
endlocal
上記の 2 つを用意した上で、以下のコマンドを実行します。
上記のコードが実行されると、即座にコマンドプロンプトが終了します。
callee.cmd内でオプションを指定しないexitコマンドが実行されるため、caller.cmdのpauseコマンドは実行されません。
/bオプション
/bオプションを指定すると、exitコマンドを実行したバッチファイルの処理を終了します。
前述したcaller.cmdとcallee.cmdの例では、呼び出し先のcallee.cmdでexitコマンドが実行されたタイミングで、caller.cmdも終了してしまいました。
/bオプションを指定することで、呼び出し元のバッチファイルの処理を終了させずに、呼び出し先のバッチファイルの処理のみを終了させることができます。
caller.cmdとcallee.cmdを以下のように書き換えます。
@echo off
setlocal
call callee.cmd
rem 以下のコマンドは実行される
pause
endlocal
@echo off
setlocal
exit /b
endlocal
上記の 2 つを用意した上で、以下のコマンドを実行します。
上記のコマンドが実行されると、pauseコマンドが実行されます。
終了コードの指定
<終了コード>には、終了コードを指定します。
終了コードは数値のみ指定することができ、数値以外を指定した場合エラーとはなりませんが、終了コードは0として扱われます。
指定した終了コードは%errorlevel%に格納されます。
%errorlevel%を使用することで、直前に実行したコマンドの終了コードを取得することができます。
caller.cmdとcallee.cmdを以下のように書き換えます。
@echo off
setlocal
call callee.cmd
echo 終了コードに%errorlevel%が指定されました
pause
endlocal
@echo off
setlocal
exit /b 100
endlocal
上記の 2 つを用意した上で、以下のコマンドを実行します。
上記のコマンドが実行されると、以下のように出力されます。