COMMAND.COM

COMMAND.COM（コマンド・コム）は、MS-DOS/PC DOS及び互換DOS、およびWindows 95、Windows 98、Windows 98SE、Windows Meにおける標準のコマンドラインインタプリタ（コマンドシェル）である。
概要.
DOSにおいては、デフォルトのユーザインターフェイスである。MS-DOSでは、起動プロセスの中で MSDOS.SYS（PC DOSでは IBMDOS.COM）が codice_1 の記述「codice_2」を元に起動する最初のプロセス（ルートプロセス）であり、AUTOEXEC.BATを実行してシステムをセットアップした後、全てのプロセスの祖先となる役割がある。
系では「DOSプロンプト」という名前（「プロンプト」とは「codice_3」のようなユーザーに入力を促すメッセージのこと）でMS-DOS互換環境のシェルとして起動された。codice_4 は16bitアプリであるが、そこから32ビット アプリケーションの起動もできた。OS/2とWindows NT系ではcmd.exeにその役割を譲ったが、32ビット版のWindows NTでは互換性のためにCOMMAND.COMも付属しており、IA-32の仮想DOSマシンで利用可能である。64ビット版では16ビットアプリのサポートを終えたため削除された。
最も初期のCOMMAND.COMはわずか4KBほどであった。
というファイル名は、旧東ドイツのロボトロンによるMS-DOSの派生物である(DCP)でも使用されていた。
FreeDOSにおける互換性のあるコマンドプロセッサは、FreeComと呼ばれる。
COMMAND.COMはDOSプログラムである。COMMAND.COMから起動されたプログラムは、DOS APIを使用してディスクオペレーティングシステムと通信するDOSプログラムである。
UNIXのシェル の コマンドのようにカレントプロセスで実行されるため環境変数の変更などが可能である。またMS-DOS 5でという内部コマンドが実装される以前は、バッチ中から別のバッチを実行すると戻る方法が基本的にはなく、COMMAND.COMを明示的に再帰的に起動して、そのCOMMAND.COMに子バッチを実行させる必要があった。
動作モード.
シェルとして、COMMAND.COMには2つの異なる動作モードがある。1つ目は対話モードで、ユーザがコマンドを入力すると即時に実行される。2番目はバッチモードで、バッチファイルと呼ばれる拡張子 のファイルに書かれたコマンドを順次実行する。
内部コマンド.
内部コマンドとは、COMMAND.COMのバイナリ内に組み込まれているコマンドである。従って、内部コマンドは常に使用可能であるが、コマンドインタープリタから直接実行することしかできない。
行の最後にキーを押すと、その行の全てのコマンドが実行される。COMMAND.COMは大文字と小文字を区別しない。すなわち、コマンドは大文字と小文字を混在させて入力することができる。
バッチファイルコマンド.
制御構造は主にバッチファイル内で使用されるが、対話モードで使用することもできる。
IFコマンド.
全ての外部コマンドは、終了時に終了ステータス/として0〜255の値を呼び出し側プログラムに送信する。ほとんどのプログラムには、戻り値に特定の規則がある（実行に成功した場合は0など）。
COMMAND.COMから外部プログラムを呼び出した場合、IFコマンドで環境変数ERRORLEVELを参照することで、最後に呼び出した外部プログラムのエラー状態をテストできる。
変数.
COMMAND.COMのバッチファイルでは、以下の4種類の変数を使用することができる。
リダイレクト、パイプ、チェーン.
DOSはシングルタスクのOSであるため、パイプライン処理は、コマンドを連続して実行し、に結果をリダイレクトしたり、一時ファイルから入力をリダイレクトしたりすることで実現している。ただし標準エラー出力のリダイレクトはCOMMAND.COMには実装されていない。
制限.
対話モードにおいて、コマンドラインの文字数は126文字以内に制限されている。
大衆文化において.
ターミネーターシリーズに登場するアンドロイドT-800のヘッドアップディスプレイや、ロボコップの再起動時の内部ビューポートには、"Loading COMMAND.COM"というメッセージが表示される。
カナダのアニメーション『リブート』は、コンピュータの中を舞台としており、システム（都市に相当）のリーダーは"COMMAND.COM"と呼ばれる。