Programming Field

Exit - DOS/コマンドプロンプト コマンド一覧

現在のコマンド インタープリター(command.com、cmd.exe)を終了します。

構文

exit [/B] [<exit-code>]
/B [Windows NT 系] バッチプログラムでこれを指定すると、バッチプログラムのみ終了します。Callでラベルを呼び出している場合は、「exit /B」によりラベルの呼び出し元に処理が移ります(サブルーチンの終了)。
<exit-code> [Windows NT 系] /B が指定されているときは、バッチプログラム(またはサブルーチン)の終了コードを指定します。そうでない場合は、cmd.exe の終了コードを指定します。いずれの場合も、呼び出し元のバッチプログラムでは If Errorlevel でチェックすることができます。

解説

現在実行しているcommand.comまたはcmd.exeを終了します。/B の指定がない限り、バッチプログラムでこれを使用するとバッチプログラムだけでなく呼び出し元のcommand.com/cmd.exeも終了してしまうので注意が必要です。

[MS-DOS/Windows 95/98/Me] 「command /K」でバッチファイルが実行されている場合にExitコマンドが実行されると、/K オプションで行われるはずの「引き続きプロンプトを表示」が行われず、そのまま command.com が終了します。なお、command.com の終了コードは 0 に設定されます。

[Windows NT 系] 「cmd /k」でバッチファイルが実行されている場合に /B の指定なしにExitコマンドが実行されても、/K オプションで行われる「引き続きプロンプトを表示」が行われます。

[Windows NT 系] 終了コードは以下の扱いになります。

  • /B の指定なし: <exit-code> を指定した場合はその値が、省略した場合はその時点でのerrorlevelの値cmd.exe の終了コードになります。
  • /B の指定あり: <exit-code> を指定した場合はその値をerrorlevelとして扱い、省略した場合はerrorlevelの値を書き換えずにバッチファイルを終了します。「cmd /C」で実行されたバッチファイルで「exit /B」が行われた場合はその時点でのerrorlevel(終了コード)が cmd.exe の終了コードになります。(「cmd /K」の場合は続くプロンプト上でerrorlevelが引き継がれ、そのプロンプトでそのまま「exit」または「exit /B」すると cmd.exe の終了コードも同じ値になります。)

なお、「exit /B」の例についてはCallをご覧ください。