MS-DOSプロンプト(command.com)やコマンドプロンプト(cmd.exe)では、軽量な機能や環境変数に関する機能、およびバッチファイル処理向けの機能を提供する組み込みコマンドが存在します。組み込みコマンドはプロンプト上においては他の外部コマンド(プログラム/実行可能ファイルとして提供されるもの)とほぼ変わりなく利用することができます。一方で、これらの組み込みコマンドは単体の実行可能ファイルが存在しないため、わずかではあるものの外部コマンドとは異なる注意点が存在します。
組み込みコマンド一覧
以下のコマンドは組み込みコマンドとして提供されています。
※ MoveおよびStartはコマンドプロンプト内(コマンドプロンプト上で実行されるバッチファイルも含みます)で使用する場合のみ組み込みコマンドとして利用できます。MS-DOSプロンプトにおいては外部プログラムとして機能が提供されています。
- Assoc
- Break
- Call
- Cd, Chdir
- Cls
- Color
- Copy
- Date
- Del, Erase
- Dir
- Echo
- Endlocal
- Exit
- For
- Ftype
- Goto
- If
- Lh, Loadhigh
- Md, Mkdir
- Mklink
- Move
- Path
- Pause
- Popd
- Prompt
- Pushd
- Rd
- Rem
- Ren, Rename
- Rmdir
- Set
- Setlocal
- Shift
- Start
- Time
- Title
- Type
- Ver
- Verify
- Vol
利用上の注意点
- 組み込みコマンドは直接プログラムとして実行することができません。必ずcommand.comかcmd.exe(まとめてCOMSPEC環境変数を用いることができます)を経由して実行する必要があります。
- [Windows Vista以降] 例えばMklinkコマンドは組み込みコマンドであるため、cmd.exe経由でないと実行することができません。
- ただしVisual C++ランタイムのsystem関数は、その引数をCOMSPEC環境変数で指定されたプログラムのパラメータとしてコマンドを実行するため、直接「system("type file.txt")」などと実行することができます。
- 組み込みコマンドは、ファイル操作や日時の変更などの一部を除いて現在のプロンプト環境に対して影響します。例として、Pushdコマンドはその環境におけるカレントディレクトリを変更しますが、明示的にcmd.exeに「Pushd」を与えてコマンドを実行した場合はカレントディレクトリが変更されません。
- 逆に環境変数の変更などの組み込みコマンドをバッチファイルで利用することで、プログラムの実行に必要な環境を整えることができます。