コマンド.COM

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

COMMAND.COM は、 MS-DOS Windows 95 Windows 98 Windows Meのデフォルトのコマンドラインインタープリタです。DOS の場合は、デフォルトのユーザーインターフェースでもあります。また、起動後の最初のプログラム( init プロセス)としての役割も担っています。シェルとして、 COMMAND.COMには、対話モードバッチモードという2つの異なる動作モードがあります。内部コマンドは、 COMMAND.COMバイナリ内に直接保存されるコマンドです。したがって、常に利用可能ですが、コマンドインタープリタから直接実行する必要があります。

説明

COMMAND.COMの後継はOS/2およびWindows NTシステムではcmd.exeですが、COMMAND.COM はこれらのオペレーティングシステムのIA-32版上の仮想 DOS マシンでも利用可能です。COMMAND.COMというファイル名は、旧東ドイツのVEB Robotron社が開発した MS-DOS 派生プログラムであるDisk Control Program (DCP)でも使用されていました。[ 2 ]

COMMAND.COMは DOS プログラムです。COMMAND.COM から起動されるプログラムはDOS APIを使用してディスクオペレーティングシステムと通信するDOS プログラムです。FreeDOS の互換コマンドプロセッサはFreeComと呼ばれることもあります。

動作モード

シェルとしてのCOMMAND.COMには、 2つの異なる動作モードがあります。1つ目は対話型モードで、ユーザーが入力したコマンドが即座に実行されます。2つ目はバッチモードで、 .BAT拡張子のテキストファイルとして保存された、事前に定義された一連のコマンドを実行します。

内部コマンド

内部コマンドは、 COMMAND.COMバイナリ内に直接保存されるコマンドです。したがって、常に利用可能ですが、コマンドインタープリタから直接実行する必要があります。

↵ Enterすべてのコマンドは、行末のキーが押された後に実行されます。COMMAND.COM大文字と小文字を区別しません。つまり、コマンドは大文字と小文字を自由に組み合わせて入力できます。

壊す
+または+を使用してプログラム割り込みの処理を制御します。CtrlCCtrlBreak
CHCP
現在のシステムコード ページを表示または変更します。
CHDIRCD
現在の作業ディレクトリを変更するか、現在のディレクトリを表示します。
CLS
画面をクリアします。
コピー
あるファイルを別のファイルにコピーします (コピー先のファイルが既に存在する場合、MS-DOS はそれを置き換えるかどうかを確認します)。 (ディレクトリ ツリーをコピーできる外部コマンドXCOPYも参照してください)。
CTTY
入力と出力に使用するデバイスを定義します。
日付
システムの日付を表示および設定します。
削除消去
ファイルを削除します。ディレクトリで使用すると、ディレクトリ内のすべてのファイルのみが削除されます。一方、外部コマンドDELTREE は、ディレクトリ自体だけでなく、ディレクトリ内のすべてのサブディレクトリとファイルも削除します。
ディレクター
指定されたディレクトリ内のファイルを一覧表示します。
エコー
バッチファイルによって実行されたコマンドを画面に表示するか(ECHO ON)しないか(ECHO OFF)を切り替えます。また、画面にテキストも表示します(ECHO text)。
出口
COMMAND.COMを終了し、起動したプログラムに戻ります。
LFNFOR
FORコマンドによる長いファイル名の返送を有効または無効にします。( Windows 9x )
ロードハイLH
プログラムを上位メモリにロードします( DR DOSHILOADの場合)。
ロック
外部プログラムがボリュームに対して低レベルのディスク アクセスを実行できるようにします。( MS-DOS 7.1およびWindows 9xのみ)
MKDIRMD
新しいディレクトリを作成します。
パス
COMMAND.COM が実行可能ファイルを検索する場所を制御するPATH環境変数の値を表示または変更します。
プロンプト
プロンプトの外観を制御するPROMPT環境変数の値を表示または変更します。
名前を変更REN
ファイルまたはディレクトリの名前を変更します。
RMDIRRD
空のディレクトリを削除します。
セット
環境変数の値を設定します。引数がない場合、定義されているすべての環境変数が表示されます。
時間
システムの時刻を表示および設定します。
真名
ASSIGNJOINSUBST論理ファイルシステムマッピングを解決し、ファイルの完全に拡張された物理名を表示します。 [ 3 ]
タイプ
ファイルの内容をコンソールに表示します。
ロック解除
低レベルのディスク アクセスを無効にします。(MS-DOS 7.1 およびWindows 9xのみ)
ヴァー
オペレーティング システムのバージョンを表示します。
確認する
ファイルの書き込み検証を有効または無効にします。
ボリュームに関する情報を表示します。

バッチファイルコマンド

制御構造は主にバッチファイル内で使用されますが、対話的に使用することもできます。[ 4 ] [ 3 ]

:ラベル
GOTOのターゲットを定義します。
電話
別のバッチ ファイルを実行し、古いバッチ ファイルに戻って続行します。
のために
反復: 指定されたファイル セットごとにコマンドを繰り返します。
後藤
実行を指定されたラベルに移動します。ラベルは行の先頭にコロン ( :likethis) で指定します。
もし
条件文は、プログラム実行の分岐を可能にします。
一時停止
プログラムの実行を停止し、続行するには任意のキーを押すようにユーザーに求めるメッセージを表示します。
レム睡眠
コメント: このコマンドに続くテキストは無視されます。
シフト
置換パラメータを後続のパラメータに置き換えます (例%0: %1%1など%2)。

IFコマンド

終了時に、すべての外部コマンドは呼び出し元プログラムに戻りコード( 0から255までの値)を返します。ほとんどのプログラムでは、戻りコードに一定の規則があります(例えば、実行が成功した場合は0)。[ 5 ] [ 6 ] [ 7 ] [ 8 ]

プログラムが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ステートメントを使用して range にマッピングできます。myscript.bat John Doe
  • ループ変数:ループ内で使用され、バッチファイルで実行される場合は%%a形式になります。これらの変数は特定のFOR文内でのみ定義され、そのFOR文で定義された特定の値セットを反復処理します。
  • Novell DOS 7OpenDOS 7.01DR-DOS 7.02以降では、COMMAND.COMはいくつかのシステム情報変数もサポートしています。[ 4 ] [ 9 ] [ 3 ]これは4DOS 3.00以降[ 10 ]およびMultiuser DOS [ 3 ]に以前あった機能ですが、サポートされている変数名のほとんどは異なります。

リダイレクト、パイプ、チェーン

DOS はシングルタスク オペレーティング システムであるため、パイプはコマンドを順番に実行し、一時ファイルとの間でリダイレクトすることによって実現されます。COMMAND.COMでは、標準エラーチャネルをリダイレクトする機能は用意されていません。

command < filename
ファイルまたはデバイスからの標準入力をリダイレクトする
command > filename
標準出力をリダイレクトし、ターゲットファイルが存在する場合は上書きします。
command >> filename
標準出力をリダイレクトし、ターゲット ファイルが存在する場合はそれに追加します。
command1 | command2
コマンド1標準出力をコマンド2標準入力にパイプする
command1command2
ASCII-20 (¶、+で起動) で区切られたコマンドは、順番に実行されます (コマンドの連鎖)。[ 3 ]つまり、最初にcommand1 が終了するまで実行され、次にcommand2 が実行されます。[ 3 ]これは、MS-DOS / PC DOS 5.0以降のCOMMAND.COMの文書化されていない機能です。 [ 3 ]これは、Windows NT ファミリのCOMMAND.COMと DR-DOS 7.07 でもサポートされています。 DR-DOS COMMAND.COMのすべてのバージョンでは、感嘆符 (!) を使用する同様の内部関数が既にサポートされていました (元々はConcurrent DOSMultiuser DOSから派生した機能)。シングルユーザー ラインでは、この機能は内部的に ("!DATE!TIME" などの組み込みスタートアップ スクリプト内)、および ! が有効なファイル名文字として問題になるのを避けるためDOSKEYの $T パラメータを介して間接的にのみ使用可能でした。[ 3 ] 4DOSは設定可能なコマンドラインセパレータ(4DOS.INI CommandSep=またはSETDOS /C)をサポートしており、デフォルトでは^に設定されています。[ 10 ] Windows NTの新しいバージョンのCOMMAND.COMも、 OS/2およびWindows NTファミリのcmd構文との互換性のためにセパレータをサポートしています。[ 10 ](cmdは¶セパレータをサポートしていません。)CtrlT&

制限事項

通常、対話型モードでのコマンドラインの長さは126文字に制限されています。[ 11 ] [ 12 ] [ 13 ] MS-DOS 6.22では、対話型モードでのコマンドラインの長さは127文字に制限されています。

  • ターミネーターのHUDビューと、ロボコップが再起動したときにその内部ビューポートに「 COMMAND.COMをロード中」というメッセージが表示されます。
  • コンピューター内部を舞台にした子供向けアニメシリーズ『ReBoot』では、システム(都市に相当)のリーダーはCOMMAND.COMと呼ばれています。[ 14 ]

参照

参考文献

  1. ^ "MS-DOS/COMMAND.ASM at master · microsoft/MS-DOS" . GitHub .
  2. ^クルト、リュディガー;グロス、マーティン。ハンガー、ヘンリー (2016-11-29) [2007]。「Betriebssystem DCP」www.robotrontechnik.de (ドイツ語)。2019年4月3日のオリジナルからアーカイブ2019年4月28日に取得
  3. ^ a b c d e f g hポール、マティアス R. (1997-07-30) [1994-05-01]。NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 157 (ドイツ語) (第 3 版)。 MPDOSTIP。2016-11-04 のオリジナルからアーカイブ2014 年 8 月 6 日に取得NWDOSTIP.TXT(注:提供されたリンクは、コレクションの一部であるHTML変換版を指していますMPDOSTIP.ZIP。)[1]
  4. ^ a b「第7章 バッチ処理」 . Caldera DR-DOS 7.02 ユーザーガイド. Caldera, Inc. 1998 [1993, 1997]. 2017年9月11日時点のオリジナルよりアーカイブ。 2017年9月11日閲覧
  5. ^ポール、マティアス R. (1997-05-01) [1993-10-01]. BATTIPs — バッチジョブのプログラムに関するヒントとコツ(ドイツ語)。 MPDOSTIP。 Kapitel 7: エラーレベルが異常です。2017-08-23 のオリジナルからアーカイブ2017 年 8 月 23 日に取得(注:BATTIPS.TXTはMPDOSTIP.ZIPの一部です。提供されているリンクは、HTMLに変換された古いバージョンのBATTIPS.TXTファイルを指しています。)[2]
  6. ^ Auer, Eric; Paul, Matthias R.; Hall, Jim (2015-12-24) [2003-12-31]. 「MS-DOS errorlevels」 . 2015年12月24日時点のオリジナルよりアーカイブ
  7. ^ Paul, Matthias R. (2003) [1997]. Auer, Eric (編). 「DOSユーティリティの終了コード(エラーレベル)」 . 2017年9月11日時点のオリジナルよりアーカイブ2017年9月11日閲覧。[3]
  8. ^ Allen, William; Allen, Linda. 「Windows 95/98/ME ERRORLEVELs」 . 2005年10月29日時点のオリジナルよりアーカイブ
  9. ^ Caldera DR-DOS 7.02 ユーザーガイド. Caldera, Inc. 1998 [1993, 1997]. 2016年11月4日時点のオリジナルよりアーカイブ。 2013年8月10日閲覧
  10. ^ a b c

    [...] 複数のコマンド: 同じコマンド ラインに複数のコマンドをキャレット [^] で区切って入力できます。たとえば、すべての .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 オンラインヘルプ.

  11. ^ポール、マティアス R. (1997-07-01) [1994-01-01]. MSDOSTIPs — MS-DOS 5.0-7 に関するヒント(ドイツ語)。 MPDOSTIP。2017-08-22 のオリジナルからアーカイブ2013 年 10 月 25 日に取得(注:MSDOSTIP.TXTはMPDOSTIP.ZIPの一部であり、2001年まで維持され、当時多くのサイトで配布されていました。提供されているリンクは、HTMLに変換された古いバージョンのMSDOSTIP.TXTファイルを指しています。)[4]
  12. ^ポール、マティアス 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]
  13. ^シュルマン, アンドリュー;ブラウン, ラルフ D. ; マクシー, デイビッド; ミシェルズ, レイモンド J.; カイル, ジム (1994) [1993年11月]. 『Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - extending to include MS-DOS 6, Novell DOS and Windows 3.1 (第2版)』. マサチューセッツ州レディング, 米国:アディソン・ウェスリー. 623, 626頁. ISBN 0-201-63287-X(xviii+856+viページ、3.5インチフロッピーディスク) 正誤表: [6] [7]
  14. ^マーフィー、キャスリーン(1995年7~8月)。「サイバースクリーン」。Film Comment、 Inwap.com経由。pp.  38~ 43。2015年6月12日時点のオリジナルよりアーカイブ2015年7月26日閲覧。

さらに読む

[...] 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では正常に動作します[...]

Paul, Matthias R. (2004-06-17). 「Re: DR-DOS 7.03 でのランダムロックアップ」 . FidoNetカンファレンス: ALT_DOS . 2019年4月28日時点のオリジナルよりアーカイブ。 2019年4月28日閲覧
  • GitHubCOMMAND1.ASM - Microsoft が MS-DOS 4.0 の一部としてリリースした COMMAND.COM バージョン A067 のソース コード
  • GitHubCOMMAND.ASM – Microsoft が MS-DOS 2.0 の一部としてリリースした COMMAND.COM バージョン 2.11 のソースコード
  • GitHubCOMMAND.ASM – Microsoft が MS-DOS 1.25 の一部としてリリースした COMMAND.COM バージョン 1.17 のソースコード
  • FreeCom – FreeDOS の COMMAND.COM 実装