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

にメンテナンス済み

exitコマンドとは

exitコマンドは、コマンドプロンプト(cmd.exe)、またはバッチファイルの処理を終了するコマンドです。終了時には、終了コードを指定することもできます。

このページでは、exitコマンドの基本的な使い方から、/bオプションの有無による挙動の違い、終了コードの扱いまでをサンプルコード付きで説明します。

exitコマンドの使い方

exit [/b] [<終了コード>]
オプション説明
/bcmd.exeを終了せず、exitコマンドを実行したバッチファイル(またはサブルーチン)の処理のみを終了します。
<終了コード>終了コードを数値で指定します。省略した場合の扱いは、後述の「終了コードの指定」を参照してください。

オプションなしのexit

オプションを指定せずに実行すると、cmd.exe自体が終了します。コマンドプロンプトのウィンドウは閉じられます。

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

バッチファイルの中で実行した場合も同様で、callやstart /waitで呼び出された先のバッチファイルであっても、呼び出し元を含めてcmd.exeごと終了します。

@echo off
setlocal

call callee.cmd

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

endlocal
@echo off
setlocal

exit

endlocal

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

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>caller.cmd
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

callee.cmdのexitによってcmd.exeが終了するため、caller.cmdのpauseは実行されず、コマンドプロンプトのウィンドウも閉じます。

/bオプション

/bオプションを指定すると、cmd.exeは終了せず、exit /bを実行したバッチファイルの処理だけが終了し、呼び出し元に制御が戻ります。

callee.cmdを以下のように書き換えます。caller.cmdは変更しません。

@echo off
setlocal

exit /b

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

呼び出し元のcaller.cmdは続行されるため、pauseコマンドが実行されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
caller.cmd
続行するには何かキーを押してください …
バッチファイル以外での`/b`

バッチファイルの外(コマンドプロンプトに直接入力した場合)でexit /bを実行すると、cmd.exeが終了します。

終了コードの指定

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

  • /bあり: 指定した値が%errorlevel%に設定され、呼び出し元のバッチファイルから参照できます。exit /bのように数値を省略した場合は、その時点の%errorlevel%が維持されます。
  • /bなし: 指定した値がcmd.exeプロセスの終了コードになります。cmd /cで呼び出した場合など、呼び出し元のプログラムから取得できます。

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

@echo off
setlocal

call callee.cmd

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

pause

endlocal
@echo off
setlocal

exit /b 100

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

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

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

終了コードは、if errorlevelや%errorlevel%による分岐に使えます。詳しくは以下のページを参照してください。

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

練習問題

練習問題

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

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

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

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

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

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