Windows 10の COMMAND.COM | |
| その他の名前 | MS-DOS プロンプト、 Windows コマンド インタープリター |
|---|---|
| 開発者 | シアトル コンピュータ プロダクツ、IBM、マイクロソフト、ソフトウェア リンク、データライト、ノベル、カルデラ |
| 初回リリース | 1980年 |
| 書かれた | x86 アセンブリ言語[1] |
| オペレーティング·システム | |
| プラットフォーム | 16ビットx86 |
| 後継 | コマンドプロンプト |
| タイプ | コマンドラインインタープリター |

COMMAND.COM は、 MS-DOS、Windows 95、Windows 98およびWindows Meのデフォルトのコマンドラインインタープリタです。 DOS の場合は、デフォルトのユーザーインターフェイスでもあります。 また、起動後に通常最初に実行されるプログラム( init プロセス) としての役割も担っています。 シェルとして、 COMMAND.COM には、対話モードとバッチモードという2 つの異なる動作モードがあります。 内部コマンドは、 COMMAND.COMバイナリ内に直接保存されるコマンドです。 したがって、常に使用できますが、コマンドインタープリタから直接実行する必要があります。
説明
COMMAND.COM は、 MS-DOS、Windows 95、Windows 98、Windows Meのデフォルトのコマンドラインインタープリタです。 DOS の場合は、デフォルトのユーザーインターフェイスでもあります。[2]起動後に通常最初に実行されるプログラム( init プロセス) としての役割も追加されており、 AUTOEXEC.BAT構成ファイルを実行してシステムをセットアップする役割を担い、すべてのプロセスの祖先となっています。[引用が必要]
COMMAND.COMの後継はOS/2およびWindows NTシステムではcmd.exeですが、COMMAND.COM はこれらのオペレーティング システムのIA-32バージョン上の仮想 DOS マシンでも使用できます。COMMAND.COM ファイル名は、旧東ドイツのVEB Robotronによる MS-DOS 派生プログラムであるDisk Control Program [de] (DCP)でも使用されていました。[3]
COMMAND.COM は DOS プログラムです。COMMAND.COM から起動されるプログラムは、DOS API を使用してディスク オペレーティング システムと通信する DOS プログラムです。FreeDOSの互換コマンド プロセッサは、FreeComと呼ばれることもあります。
動作モード
シェルとして、COMMAND.COM には 2 つの異なる動作モードがあります。1 つ目は対話型モードで、ユーザーが入力したコマンドがすぐに実行されます。2 つ目はバッチ モードです。これは、 .BAT拡張子のテキスト ファイルとして保存された定義済みの一連のコマンドを実行します。
内部コマンド
内部コマンドは、COMMAND.COM バイナリ内に直接保存されるコマンドです。したがって、常に使用可能ですが、コマンド インタープリタから直接実行することしかできません。
↵ Enterすべてのコマンドは、行末のキーが押された 後に実行されます。COMMAND.COM は大文字と小文字を区別しないため、コマンドは大文字と小文字を任意に組み合わせて入力できます。
- 壊す
- +または+を使用してプログラム割り込みの処理を制御します。CtrlCCtrlBreak
- チッチ
- 現在のシステムコード ページを表示または変更します。
- CHDIR、CD
- 現在の作業ディレクトリを変更するか、現在のディレクトリを表示します。
- CLSA
- 画面をクリアします。
- コピー
- あるファイルを別のファイルにコピーします (コピー先のファイルがすでに存在する場合、MS-DOS はそれを置き換えるかどうかを尋ねます)。(ディレクトリ ツリーをコピーできる外部コマンドXCOPYも参照してください)。
- CTTY
- 入力と出力に使用するデバイスを定義します。
- 日付
- システムの日付を表示および設定します。
- 削除、消去
- ファイルを削除します。ディレクトリで使用すると、ディレクトリ内のすべてのファイルのみが削除されます。比較すると、外部コマンドDELTREE は、ディレクトリ自体だけでなく、ディレクトリ内のすべてのサブディレクトリとファイルも削除します。
- ディレクター
- 指定されたディレクトリ内のファイルを一覧表示します。
- エコー
- テキストを表示するか (
ECHO ON)、表示しないか (ECHO OFF) を切り替えます。また、画面にテキストを表示します (ECHO text)。 - 出口
- COMMAND.COM を終了し、起動したプログラムに戻ります。
- LFNFOR
- FOR コマンドによる長いファイル名の返送を有効または無効にします。( Windows 9x ) [引用が必要]
- ロードハイ、LH
- プログラムを上位メモリにロードします( DR DOS
HILOADの場合)。 - ロック
- 外部プログラムがボリュームへの低レベルのディスク アクセスを実行できるようにします。 ( MS-DOS 7.1およびWindows 9xのみ) [引用が必要]
- MKDIR、医学博士
- 新しいディレクトリを作成します。
- パス
- COMMAND.COM が実行可能ファイルを検索する場所を制御するPATH環境変数の値を表示または変更します。
- プロンプト
- プロンプトの外観を制御する PROMPT 環境変数の値を表示または変更します。
- 名前を変更、REN
- ファイルまたはディレクトリの名前を変更します。
- RMDIR、RD
- 空のディレクトリを削除します。
- セット
- 環境変数の値を設定します。引数を指定しないと、定義されているすべての環境変数が表示されます。
- 時間
- システムの時刻を表示および設定します。
- 真名
- ファイルの完全に拡張された物理名を表示し、ASSIGN、JOIN、SUBST論理ファイルシステムマッピングを解決します。[4]
- タイプ
- ファイルの内容をコンソールに表示します。
- ロック解除
- 低レベルのディスク アクセスを無効にします。(MS-DOS 7.1 およびWindows 9xのみ) [引用が必要]
- 翻訳
- オペレーティング システムのバージョンを表示します。
- 確認する
- ファイルの書き込み検証を有効または無効にします。
- 巻
- ボリュームに関する情報を表示します。
バッチファイルコマンド
制御構造は主にバッチファイル内で使用されますが、対話的に使用することもできます。[5] [4]
- :ラベル
- GOTO のターゲットを定義します。
- 電話
- 別のバッチ ファイルを実行し、古いバッチ ファイルに戻って続行します。
- のために
- 反復: 指定されたファイル セットごとにコマンドを繰り返します。
- 後藤
- 実行を指定されたラベルに移動します。ラベルは行の先頭にコロン (
:likethis) で指定します。 - もし
- 条件文は、プログラム実行の分岐を可能にします。
- 一時停止
- プログラムの実行を停止し、続行するには任意のキーを押すようにユーザーに求めるメッセージを表示します。
- レム
- コメント: このコマンドに続くテキストは無視されます。
- シフト
- 各置換パラメータを後続のパラメータに置き換えます (例:
%0、など)。%1%1%2
IFコマンド
終了時に、すべての外部コマンドは呼び出し元プログラムに戻りコード(0から255までの値)を送信します。ほとんどのプログラムでは、戻りコードに一定の規則があります(たとえば、正常に実行された場合は0)。[6] [7] [8] [9]
プログラムが COMMAND.COM によって呼び出された場合、ERRORLEVEL 条件付きの内部 IF コマンドを使用して、最後に呼び出された外部プログラムのエラー状態をテストできます。[引用が必要]
COMMAND.COM では、内部コマンドは新しい値を確立しません。[引用が必要]
変数
COMMAND.COM のバッチ ファイルには、次の 4 種類の変数を含めることができます。
- 環境変数: これらは%VARIABLE%形式を持ち、SET ステートメントで値に関連付けられます。DOS 3 より前の COMMAND.COM は、環境変数をバッチ モードでのみ展開します。つまり、コマンド プロンプトで対話的に展開することはありません。[引用が必要]
- 置換パラメータ: これらは%0、%1 ... %9の形式を持ち、最初はコマンド名とスクリプトに渡される最初の 9 つのコマンドラインパラメータが含まれます (たとえば、呼び出しコマンドが の場合、%0は "myscript.bat"、%1は "John"、%2は "Doe" です)。9 番目より右側のパラメータは、SHIFT ステートメントを使用して範囲にマッピングできます。[引用が必要]myscript.bat John Doe
- ループ変数: ループで使用され、バッチ ファイルで実行される場合は%%a形式になります。これらの変数は特定の FOR ステートメント内でのみ定義され、その FOR ステートメントで定義された特定の値セットを反復処理します。[引用が必要]
- Novell DOS 7、OpenDOS 7.01、DR-DOS 7.02以降では、COMMAND.COMはいくつかのシステム情報変数もサポートしています。[5] [10] [4]これは4DOS 3.00以降[11]およびMultiuser DOS [4]に以前あった機能ですが、サポートされている変数名のほとんどは異なります。
リダイレクト、パイプ、チェーン
DOS はシングルタスク オペレーティング システムであるため、パイプはコマンドを順番に実行し、一時ファイルとの間でリダイレクトすることによって実現されます。[引用が必要] COMMAND.COM では、標準エラーチャネルをリダイレクトする規定はありません。[引用が必要]
command < filename- ファイルまたはデバイスからの標準入力をリダイレクトする
command > filename- 標準出力をリダイレクトし、ターゲット ファイルが存在する場合は上書きします。
command >> filename- 標準出力をリダイレクトし、ターゲット ファイルが存在する場合はそれに追加します。
command1 | command2- コマンド1の標準出力をコマンド2の標準入力にパイプする
command1 ¶ command2- ASCII-20 (¶、+で起動) で区切られたコマンドは、順番に実行されます (コマンドの連鎖)。[4]つまり、最初にcommand1が終了するまで実行され、次にcommand2 が実行されます。[4]これは、 MS-DOS / PC DOS 5.0以降の COMMAND.COM の文書化されていない機能です。 [4]これは、Windows NT ファミリの COMMAND.COM および DR-DOS 7.07 でもサポートされています。DR-DOS COMMAND.COM のすべてのバージョンは、感嘆符 (!) を使用する同様の内部機能を既にサポートしていました (元々はConcurrent DOSおよびMultiuser DOSから派生した機能)。シングルユーザー ラインでは、この機能は内部的に ("!DATE!TIME" などの組み込みスタートアップ スクリプト内)、および ! が有効なファイル名文字として問題になるのを避けるためDOSKEYの $T パラメータを介して間接的にのみ使用可能でした。[4] 4DOSは設定可能なコマンドラインセパレータ(4DOS.INI CommandSep=またはSETDOS /C)をサポートしており、デフォルトでは^になっています。[11] Windows NTの新しいバージョンのCOMMAND.COMも、OS/2およびWindows NTファミリのcmd構文との互換性のためにセパレータをサポートしています。[11](cmdは¶セパレータをサポートしていません。)CtrlT
&
制限事項
一般的に、対話モードでのコマンドラインの長さは126文字に制限されています。[12] [13] [14] MS-DOS 6.22では、対話モードでのコマンドラインの長さは127文字に制限されています。[引用が必要]
大衆文化において
- 「COMMAND.COM をロード中」というメッセージは、ターミネーターのHUDビューと、再起動時のロボコップの内部ビューポートに表示されます。 [引用が必要]
- コンピューター内部を舞台にした子供向けアニメシリーズ『ReBoot』では、システム(都市に相当)のリーダーは COMMAND.COM と呼ばれています。[引用が必要]
参照
- DOSコマンドのリスト
- コマンドシェルの比較
- cmd.exe — さまざまな Windows および OS/2 システムのコマンドライン インタープリター
- — コマンドプロセッサを最初のプロセスとして起動します
- SHELL (CONFIG.SYS ディレクティブ) — デフォルトのコマンドプロセッサを上書きする
- COMSPEC (環境変数) — COMMAND.COM によって設定され、自身の一時部分をリロードします。
- CMDLINE (環境変数) — COMMAND.COM によって設定され、長いコマンドラインを外部プログラムに渡します。
- — サードパーティの代替コマンドプロセッサ
- DOSSHELL / ViewMAX — 代替 DOS シェル
- — COMMAND.COM という名前ではない同様のコマンド プロセッサを持つ
- PC-MOS/386 — COMMAND.COM という同様のコマンドプロセッサを搭載
- 一時プログラム領域- 実行中のアプリケーションまたは COMMAND.COM の一時部分で使用できるメモリ
- SpartaDOS X — Atari コンピュータ向けの同様の実装
参考文献
- ^ 「MS-DOS/COMMAND.ASM at master · microsoft/MS-DOS」。GitHub。
- ^ 「MS-DOS | 定義、機能、重要性、および事実 | ブリタニカ」www.britannica.com 。 2024年6月26日閲覧。
- ^ クルト、リュディガー;グロス、マーティン。ハンガー、ヘンリー (2016-11-29) [2007]。 「Betriebssystem DCP」。www.robotrontechnik.de (ドイツ語)。 2019年4月3日のオリジナルからアーカイブ。2019年4月28日に取得。
- ^ abcdefgh ポール、マティアス R. (1997-07-30) [1994-05-01]。 NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 157 (ドイツ語) (第 3 版)。 2016-11-04 のオリジナルからアーカイブ。2014 年 8 月 6 日に取得。
{{cite book}}:|work=無視されました (ヘルプ)NWDOSTIP.TXT(注: 提供されたリンクは、コレクションの一部である のHTML変換バージョンを指していますMPDOSTIP.ZIP。) [1] - ^ ab 「第7章: バッチ処理」。Caldera DR-DOS 7.02 ユーザーガイド。Caldera , Inc. 1998 [1993、1997]。2017年9月11日時点のオリジナルよりアーカイブ。 2017年9月11日閲覧。
- ^ ポール、マティアス R. (1997-05-01) [1993-10-01]. BATTIPs — バッチジョブのプログラムに関するヒントとコツ (ドイツ語)。 Kapitel 7: エラーレベルが異常です。 2017-08-23 のオリジナルからアーカイブ。2017 年 8 月 23 日に取得。
{{cite book}}:|work=無視されます (ヘルプ) (注: BATTIPS.TXT は MPDOSTIP.ZIP の一部です。提供されているリンクは、HTML に変換された古いバージョンの BATTIPS.TXT ファイルを指しています。) [2] - ^ Auer, Eric; Paul, Matthias R.; Hall, Jim (2015-12-24) [2003-12-31]. 「MS-DOS errorlevels」。2015-12-24時点のオリジナルよりアーカイブ。
- ^ Paul, Matthias R. (2003) [1997]. Auer, Eric (ed.). 「DOSユーティリティの終了コード(エラーレベル)」。2017年9月11日時点のオリジナルよりアーカイブ。 2017年9月11日閲覧。[3]
- ^ Allen, William; Allen, Linda. 「Windows 95/98/ME ERRORLEVELs」。2005 年 10 月 29 日時点のオリジナルよりアーカイブ。
- ^ Caldera DR-DOS 7.02 ユーザーガイド。Caldera , Inc. 1998 [1993, 1997]。2016年11月4日時点のオリジナルよりアーカイブ。2013年8月10日閲覧。
- ^ ABC さん
[...] 複数のコマンド: 同じコマンド ラインに、キャレット [^] で区切って複数のコマンドを入力できます。たとえば、すべての .TXT ファイルをドライブ A: にコピーし、CHKDSK を実行してドライブ A のファイル構造が適切であることを確認する場合は、次のコマンドを入力できます。コマンド ラインの合計長が 511 文字を超えない限り、コマンド ラインには任意の数のコマンドを入力できます。 コマンド ラインだけでなく、エイリアスやバッチ ファイルでも複数のコマンドを使用できます。 デフォルトのコマンド区切り文字を使用しない場合は、コマンドまたは4DOS.INIの CommandSep ディレクティブを使用して別の文字を選択できます。 [...] (複合文字) このオプションは、同じ行にある複数のコマンドを区切るために使用する文字を設定します。デフォルトはキャレット [^] です。 リダイレクト文字 [<>|]、空白、タブ、カンマ、等号をコマンド区切り文字として使用することはできません。コマンド セパレータは SETLOCAL によって保存され、ENDLOCAL によって復元されます。この例では、セパレータをチルダ [~] に変更します。(文字自体、またはその ASCII コードを 10 進数として指定するか、先頭に 0x が付いた 16 進数を指定できます。) [...] CommandSep = c (^): これは、同じ行にある複数のコマンドを区切るために使用される文字です。 [...] 特殊文字の互換性: 弊社の製品を 2 つ以上使用する場合、または異なる製品のユーザーとエイリアスやバッチ ファイルを共有する場合は、コマンド セパレータ [...]、エスケープ文字 [...]、およびパラメーター文字 [...] という 3 つの重要な文字の違いに注意する必要があります。各製品におけるこれらの文字のデフォルト値は、次の表のとおりです。 [...] 製品、区切り文字、エスケープ パラメータ [...] 4DOS: ^、↑、& [...] 4OS2、4NT、Take Command: &、^、$ [...] (上矢印 [↑] は、ASCII Ctrl-X 文字、数値 24 を表します。) [...]
C:\>COPY *.TXT A: ^ CHKDSK A:SETDOS /CSETDOS /C:C:\>SETDOS /C~— Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 オンライン ヘルプ。 - ^ ポール、マティアス R. (1997-07-01) [1994-01-01]。 MSDOSTIPs — MS-DOS 5.0-7 に関するヒント (ドイツ語)。 2017-08-22 のオリジナルからアーカイブ。2013 年 10 月 25 日に取得。
{{cite book}}:|work=無視されます (ヘルプ) (注: MSDOSTIP.TXT は MPDOSTIP.ZIP の一部であり、2001 年まで維持され、当時多くのサイトで配布されていました。提供されているリンクは、HTML に変換された古いバージョンの MSDOSTIP.TXT ファイルを指しています。) [4] - ^ ポール、マティアス R. (1997-05-01) [1995-03-01]. 「JPSofts 4DOS 5.5b/c、5.51、5.52a および NDOS に関するヒント」。MPDOSTIP (ドイツ語)。 2016-11-04 のオリジナルからアーカイブ。2015 年 5 月 8 日に取得。
4DOS5TIP.TXT(注:提供されたリンクは、コレクションの一部であるファイルのHTML変換バージョンを指していますMPDOSTIP.ZIP。)[5] - ^ シュルマン、アンドリュー;ブラウン、ラルフ D .; マクシー、デイビッド; ミシェルズ、レイモンド J.; カイル、ジム (1994) [1993 年 11 月]。Undocumented DOS: 予約済みの MS-DOS 関数とデータ構造のプログラマー ガイド - MS-DOS 6、Novell DOS、Windows 3.1 を含むように拡張(第 2 版)。マサチューセッツ州レディング、米国: Addison Wesley。pp . 623、626。ISBN 0-201-63287-X。(xviii+856+viページ、3.5インチフロッピー) 正誤表: [6] [7]
さらに読む
[...] Windows 95 より前のすべての MS-DOS バージョンは、COM スタイルの COMMAND.COM ファイルを使用していました。このファイルには、ファイルの先頭に特別な署名があり、[...] MS-DOS BIOS はシェルをロードする前にこの署名を照会しますが、DR-DOS BIOS は照会しません [...] COMMAND.COM は [...] 「正しい」DOS バージョンで実行されているかどうかをチェックするため、DR-DOS で COMMAND.COM をロードすると、「バージョンが正しくありません」というエラー メッセージが表示され、COMMAND.COM は終了します。そのため、DR-DOS は [...] 「コマンド インタープリタが正しくないか、見つかりません」というエラー メッセージを表示します (DR-DOS が CONFIG.SYS 処理の終了後に SHELL= コマンド プロセッサをロードしようとした場合)。この場合、有効な DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) へのパスを入力すれば、すべて正常に動作します。今では、MS-DOS 7.0 以降、状況は変わりました [...] COMMAND.COM は内部的に EXE スタイルのファイルになったため、魔法の [...] 署名 [...] は存在せず、チェックもできません [...] そのため、DR-DOS が互換性のない COMMAND.COM を排除する方法はありません。さらに、COMMAND.COM はバージョン チェックを行わなくなり、[...] DR-DOS では動作しません [...] クラッシュするだけです [...] PC DOS COMMAND.COM は DR-DOS では正常に動作します [...]
- クーパー、ジム (2001)。MS -DOS 6.22 を使用する特別版(第 3 版) 。Que Publishing。ISBN 978-0-78972573-8。
- Wolverton, Van (1990)。『MS-DOS コマンド: Microsoft クイック リファレンス(第 4 版)』。Microsoft Press。ISBN 978-1-55615289-4。
- 2019年5月1日にarchive.todayにアーカイブされました
- 2019-04-28にarchive.todayにアーカイブされました
外部リンク
- GitHubの COMMAND1.ASM - Microsoft が MS-DOS 4.0 の一部としてリリースした COMMAND.COM バージョン A067 のソース コード
- GitHubの COMMAND.ASM – Microsoft が MS-DOS 2.0 の一部としてリリースした COMMAND.COM バージョン 2.11 のソース コード
- GitHub上の COMMAND.ASM – Microsoft が MS-DOS 1.25 の一部としてリリースした COMMAND.COM バージョン 1.17 のソース コード
- FreeCom – FreeDOS の COMMAND.COM 実装
