exit - プログラムを終了する

にメンテナンス済み

exitコマンドとは

exitコマンドは、バッチファイルやコマンドプロンプトを終了させることができるコマンドです。

このページでは、exitコマンドの基本的な使い方からオプションの設定方法まで分かり易く説明しています。

exitコマンドの使い方

exitコマンドの基本的な使い方は以下の通りです。

exit [/b] <終了コード>
オプション説明
/bexitコマンドを実行したバッチファイルの処理を終了します。
<終了コード>終了コードを指定します。未指定の場合、数値以外を指定した場合は0として扱われます。

オプションを指定せず使用することができ、その場合はexitコマンドは何もせずに終了します。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>exit

上記のコマンドを実行すると、開いているコマンドプロンプトが終了します。

また、オプションを指定しなかった場合、callstartコマンドで呼び出した先のバッチファイル内のコマンドであっても、コマンドプロンプトは終了します。

caller.cmd
@echo off
setlocal

call callee.cmd

rem 以下のコマンドは実行されない
pause

endlocal
callee.cmd
@echo off
setlocal

exit

endlocal

上記の 2 つを用意した上で、以下のコマンドを実行します。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd

上記のコードが実行されると、即座にコマンドプロンプトが終了します。

callee.cmd内でオプションを指定しないexitコマンドが実行されるため、caller.cmdpauseコマンドは実行されません。

/bオプション

/bオプションを指定すると、exitコマンドを実行したバッチファイルの処理を終了します。

前述したcaller.cmdcallee.cmdの例では、呼び出し先のcallee.cmdexitコマンドが実行されたタイミングで、caller.cmdも終了してしまいました。

/bオプションを指定することで、呼び出し元のバッチファイルの処理を終了させずに、呼び出し先のバッチファイルの処理のみを終了させることができます。

caller.cmdcallee.cmdを以下のように書き換えます。

caller.cmd
@echo off
setlocal

call callee.cmd

rem 以下のコマンドは実行される
pause

endlocal
callee.cmd
@echo off
setlocal

exit /b

endlocal

上記の 2 つを用意した上で、以下のコマンドを実行します。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd

上記のコマンドが実行されると、pauseコマンドが実行されます。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
caller.cmd
続行するには何かキーを押してください …

終了コードの指定

<終了コード>には、終了コードを指定します。

終了コードは数値のみ指定することができ、数値以外を指定した場合エラーとはなりませんが、終了コードは0として扱われます。

指定した終了コードは%errorlevel%に格納されます。

%errorlevel%を使用することで、直前に実行したコマンドの終了コードを取得することができます。

caller.cmdcallee.cmdを以下のように書き換えます。

caller.cmd
@echo off
setlocal

call callee.cmd

echo 終了コードに%errorlevel%が指定されました

pause

endlocal
callee.cmd
@echo off
setlocal

exit /b 100

endlocal

上記の 2 つを用意した上で、以下のコマンドを実行します。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd

上記のコマンドが実行されると、以下のように出力されます。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
caller.cmd
終了コードに100が指定されました
続行するには何かキーを押してください …

exitコマンドの関連コマンド

練習問題

練習問題

コマンドプロンプトにおける “exit” コマンドの使用目的は何ですか?

回答がサーバーに送信されることはありません
練習問題

以下の選択肢のうち、指定した終了コードが適切に設定されるのはどれでしょうか?

回答がサーバーに送信されることはありません
練習問題

caller.cmdcallee.cmdという 2 つのバッチファイルを用意し、caller.cmdからcallee.cmdを呼び出しています。callee.cmdの中で以下のコマンドを実行された場合、caller.cmdはどのような挙動をするでしょうか?

exit
回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #引数 #コマンドライン #コマンド