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で呼び出された先のバッチファイルであっても、呼び出し元を含めてcmd.exeごと終了します。

`start`で呼び出した場合

startコマンドは新しいcmd.exeを起動するため、startで起動したバッチファイルのexitが終了させるのは、その新しいウィンドウだけです。

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) 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は変更しません。

callee.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を以下のように書き換えます。

caller.cmd
@echo off
setlocal

call callee.cmd

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

pause

endlocal
callee.cmd
@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” コマンドの使用目的は何ですか?

正しいものを 1 つ選んでください。

  1. ファイルやディレクトリを削除する。
  2. 現在のコマンドプロンプトのセッションを終了する。
  3. 一時的にコマンドプロンプトを最小化する。

練習問題

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

正しいものを 1 つ選んでください。

  1. exit
  2. exit /b code
  3. exit 100

練習問題

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

正しいものを 1 つ選んでください。

  1. callee.cmdの処理が終了し、caller.cmdの処理は続行される
  2. callee.cmdの処理が終了し、caller.cmdの処理も終了する
  3. callee.cmdの処理は続行され、caller.cmdの処理も続行される
#コマンドプロンプト #バッチファイル #引数 #コマンドライン #コマンド