MS-DOS/PC DOS入門は、マイクロソフト社製のMS-DOS、IBM社製のPC DOSおよびそのほかのDOSに関する解説である。
MS-DOS、PC DOSは、パーソナルコンピュータ(PC)において、グラフィカルユーザインターフェイス(GUI)が普及するまで用いられたIntel 8086(x86)アーキテクチャ用キャラクタインターフェイス(MS-DOSを参照。
IBMが初代IBM PC用のOSの開発を米国マイクロソフト本社に委託し、PC DOSが開発された。その後、PC DOSをベースにマイクロソフトが他社にOEM供給したものは、MS-DOSとされた。
また、Microsoftに許諾を取った上でIBM PC(後のPC/ATアーキテクチャ)以外の多くのアーキテクチャ向けに他社が移植を行っている。(PC-9800シリーズなど)
MS-DOS
PC DOS
DR DOS
バージョン6以降、MS-DOS、PC DOSの次世代CUI OSとしてMS OS/2,IBM OS/2が開発されたが、Windowsの登場によりあまり普及しなかった。
MS-DOS、PC DOSは、オペレーティングシステムとしてはほとんど使われなくなったが、Microsoft Windowsのコマンドプロンプトとして、また、WindowsVistaから（WindowsXPからインストール可能）は、コマンドプロンプトの他にWindows PowerShellが標準に追加され、そのコマンド体系は残っている。なお、Windows11でいう「ターミナル」アプリで実行されるアプリは規定ではPowerShellである（なお、ターミナルのvボタンで出てくるプルダウンメニューを使えばコマンドプロンプトなど別アプリにも変えられる）。
その他、有志によってFreeDOSやDOSBOX等、MS-DOSの互換OSが生まれた。
DOSは、Disk Operating Systemの略称であることからもわかるように、基本的にフロッピーディスク・ハードディスク上で運用しその記憶媒体上のデータを操作することにより使用する。
ディスクドライブ (A, B, C, D, ... Z)
ディスクドライブには「ドライブレター」というアルファベットのドライブ文字が割り当てられ、「Aドライブ」などと呼ぶ。PC/ATアーキテクチャではフロッピーディスクドライブにはAまたはBの文字が、ハードディスクドライブやCD-ROMドライブにはC以降の文字が割り当てられる。PC-98アーキテクチャでは、フロッピーディスク、ハードディスクを問わず起動ドライブがAドライブとなり、その後B、C、Dと順番に割り当てられていく。CONFIG.SYSのLASTDRIVEで上限を設定できる。 なお、現代のパソコンで内蔵ドライブの多くがCドライブになるのは、このMS-DOSの設定で、A・Bドライブがフロッピーディスクドライブ、更に詳しく書くと、AドライブがMS-DOSのフロッピーディスク用のドライブ、Bドライブがその他のフロッピーディスク用のドライブ用で、Cドライブがハードディスクドライブ用と割り振られているからである。決してCドライブの"C"は「computer」の"C"ではない。コンピューターの記憶装置として普及したフロッピーディスクから順番に割り振っていったらハードディスクのドライブレターが"C"になったということにすぎない。なお、フロッピーディスクドライブがA・Bと二つ割り振られているのは、当時、AドライブでMS-DOSを読み込みながらBドライブのフロッピーディスクの作業をしていたからである。 また、SSDはハードディスクドライブの代替であるから、ハードディスクドライブと同じCドライブである。
カレントドライブ
カレントドライブとは、対象となっているドライブのことである。カレントディレクトリとともに操作対象のディレクトリを指定する。「C:」や「D:」などのコマンドで変更できる。
ディレクトリ
ファイルを階層化して管理する概念としてディレクトリと呼ばれるものがある。バージョン1には、ディレクトリの概念がない。なおWindowsではフォルダと呼ぶ。
カレントディレクトリ
カレントディレクトリとは、対象となっているディレクトリのことである。各ドライブごとに存在し、それぞれを内部コマンドのCDで変更できる。
ファイルシステム
またNTFSなどのパーティションにアクセスするためのドライバも販売されていた。
次の順にファイルを読み込む。
なお、PC DOSまたはDR DOSの場合にはIO.SYSはIBMBIO.COMに，MSDOS.SYSはIBMDOS.COM
となる。また、AUTOEXEC.BATはCOMMAND.COMから呼び出されるため、CONFIG.SYSにおいてSHELL変数をCOMMAND.COM以外を指定した場合には読み込まれない。
CONFIG.SYSとAUTOEXEC.BATを書き換えることで行う。
MS-DOSバージョン7では、MSDOS.SYSも用いる。
DEVICE、DEVICEHIGH文によって組み込む。
主なデバイスドライバには次のものがある。
具体的には
などのように記述する。
なお、DEVICEHIGH文を用いる場合には、Upper Memory Blocksを使用するため、HIMEM.SYSまたはそれに準ずるドライバをDEVICE文で読み込んだ後に使用しなければならない。
日本語FEPやマウスドライバなどの常駐プログラムをCONFIG.SYSから読み込む場合には、
INSTALL文またはINSTALLHIGH文を使う 。
INSTALL文を使うことで、
AUTOEXEC.BATを使わずに設定ファイルを構成することもできるが、
歴史的経緯からINSTALL文はあまり使われない。
なお、
DEVICE文におけるDEVICEHIGH文と同じく、
Upper Memory Blocksを使う関係上HIMEM.SYSの読み込みよりも後にINSTALLHIGHを使わなければならない。
例 : INSTALL=C:\DOS\MOUSE.COM
SHELL文によって設定する。
通常は標準シェルであるCOMMAND.COMを使用する。
具体的には
などのように記述する。
なお、末尾の/Pは必須。
DOS文システムの一部をHigh Memory AreaやUpper Memory Blocksに読み込む際に使用する。
例 : DOS=HIGH,UMB
DOSDATA文PC DOS 7.0以降のみ使用可能。
例 : DOSDATA=UMB
AUTOEXEC.BATはCOMMAND.COMが起動時に必ず読み込むファイルである。
実体は通常のバッチファイルになっている。
このファイルには常駐プログラムやDOSの起動時に自動的に実行させたいアプリケーションを書きこむ。
主に使われる用途としては次のようなものがある。
記述方法は絶対パスもしくは相対パスで行う。
具体的には
などのように記述する。
なお、常駐ソフトウェアを読み込む際にはCONFIG.SYSのDEVICE文に対するDEVICEHIGH文のように、
High Memory Areaに常駐させるためのLOADHIGH文 (省略記法: LH) が用意されている。
MSDOS.SYSはCONFIG.SYS、AUTOEXEC.BATと違い、編集できる場所が限られている。もし、編集してはならない場所を編集した場合、MS-DOSが起動できなくなるケースが多い。
主に以下の用途で使われる。
DOSのコマンドは、
内部コマンドと外部コマンド
に大別される。
内部コマンドとは標準シェルCOMMAND.COMの内蔵コマンドである。
外部コマンドとはCOMMAND.COMに内蔵されていない、
.COM形式あるいは.EXE形式で提供されているコマンドである。
.BAT形式を使うと、一度に複数のコマンドを実行できる。
下記のコマンドは基本的に「コマンドプロンプト」で用いることができる。
ただし Power Shell では使えないコマンドもあるので、都度、確認のこと。
ディレクトリの内容を表示するための内部コマンド (UNIXのlsに相当)。
ディレクトリの中身を知りたい場合によく使われる。
(詳しく知りたい場合は、DIR /?とコマンドの後に/?)
サンプル出力 (全てBochs上のFreeDOSより)
C:\>dir
 Volume in drive C is FREEDOS
 Volume Serial Number is 4228-11FA
 Directory of C:\
KERNEL   SYS        41,293  08-04-02 11:32a
COMMAND  COM        86,413  07-30-02 12:17a
DOS                    11-14-02 10:43a
FDCONFIG SYS           263  11-14-02 11:05a
EDIT     EXE        62,277  08-11-04  7:38p
EDIT     HLP        29,452  04-28-04  1:22a
         5 file(s)        219,698 bytes
         1 dir(s)       5,402,624 bytes free
C:\>
Powershellでも問題なく使える。（ただし表示は上記とは異なる。）
PS C:\Users\ユーザー名> dir
    ディレクトリ: C:\Users\ユーザー名
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----  2023/07/17  月曜日     20:                .thumbnails
                                01
d-r---  2023/07/17  月曜日     18:                Contacts
                                20
d-----  2023/07/17  月曜日     18:                Documents
                                41
dar---  2023/07/24  月曜日     16:                Downloads
                                21
d-r---  2023/07/17  月曜日     18:                Favorites
                                20
d-r---  2023/07/17  月曜日     18:                Links
                                20
d-r---  2023/07/17  月曜日     21:                Music
                                02
dar--l  2023/07/23  日曜日     14:                OneDrive
                                35
d-r---  2023/07/17  月曜日     18:                Saved Games
                                20
d-r---  2023/07/17  月曜日     18:                Searches
                                37
d-r---  2023/07/22  土曜日     11:                Videos
                                57
例1:
C:\>dir /w
 Volume in drive C is FREEDOS
 Volume Serial Number is 4228-11FA
 Directory of C:\
KERNEL.SYS     COMMAND.COM    [DOS]          FDCONFIG.SYS   EDIT.EXE
EDIT.HLP
         5 file(s)        219,698 bytes
         1 dir(s)       5,402,624 bytes free
C:\>
例2:
 Directory of C:\DOS\BIN
[.]            [..]           RIPCORD.COM    ASSIGN.COM     ATTRIB.COM
CHOICE.EXE     CMDXSWP.COM    COMMAND.COM    KSSF.COM       PTCHSIZE.EXE
VSPAWN.COM     COMP.COM       DEBUG.COM      DISKCOMP.EXE   DISKCOPY.EXE
DISKCOPY.INI   DELTREE.COM    DELTREE2.COM   EDIT.EXE       EDIT.HLP
EMM386.EXE     HIMEM.EXE      EXE2BIN.COM    FC.EXE         FDISK.EXE
FDISK.INI      FDISKPT.INI    FDISKB.EXE     FDXMS.SYS      FDXMST.SYS
FDXXMS.SYS     FDXXMST.SYS    XMSTEST.EXE    FDXM286T.SYS   FDXMS286.SYS
XMS2TEST.EXE   FIND.EXE       FORMAT.EXE     FASTHELP.BAT   FDHELP.EXE
[FILES]        HELP.EXE       HELP.HTM       LABEL.EXE      MEM.EXE
[MKEYB]        MIRROR.EXE     MODE.COM       MORE.EXE       MOVE.EXE
NANSI.SYS      PRINT.COM      PRINTQ.EXE     28MON.COM      2CMON.COM
API28.COM      API28I16.COM   REPLACE.EXE    SCANDISK.EXE   SHARE.EXE
CDCACHER.EXE   CDHDREAD.EXE   KLUDGE0.EXE    NBSTAT.EXE     SHSUCDHD.EXE
SHSUCDN.EXE    SHSUCDX.EXE    SHSUDRVX.EXE   SHSUSERV.EXE   SORT.EXE
JOIN.EXE       SUBST.EXE      SWSUBST.EXE    SYS.COM        BITDISK.EXE
TDSK.EXE       TREE.COM       UNDELETE.EXE   UNFORMAT.EXE   XCOPY.EXE
[KEY]          KEYB.BAT       KEYMAN.EXE     LISTXDEF.EXE   SCANKBD.EXE
XKEYB.EXE      XKEYBRES.EXE
        82 file(s)      1,872,278 bytes
         5 dir(s)       5,402,624 bytes free
C:\DOS\BIN>
場合によっては、DIRコマンドを入力しても、長すぎて全てを見られないときがある。
例：
SHSUCDX  EXE        15,726  10-20-00  3:34p
SHSUDRVX EXE        12,849  10-20-00  3:19p
SHSUSERV EXE       113,520  05-09-96  8:12p
SORT     EXE        14,816  01-24-95  3:20p
JOIN     EXE        54,096  08-05-00  4:07p
SUBST    EXE        54,096  08-05-00  4:07p
SWSUBST  EXE        54,096  01-26-97 11:35p
SYS      COM        10,687  08-16-02 11:29p
BITDISK  EXE        10,311  06-22-95  1:10a
TDSK     EXE        18,183  12-12-95  2:30a
TREE     COM         9,893  07-07-01 12:33p
UNDELETE EXE         9,103  08-30-02 11:30p
UNFORMAT EXE        36,231  03-24-99  8:31p
XCOPY    EXE        15,102  09-07-01 12:10a
KEY                    11-14-02 11:03a
KEYB     BAT            23  08-17-01  4:55a
KEYMAN   EXE         6,202  04-14-02  2:09p
LISTXDEF EXE         3,366  04-14-02  2:09p
SCANKBD  EXE         6,627  04-14-02  2:09p
XKEYB    EXE        12,657  07-27-02  6:57p
XKEYBRES EXE         5,986  07-27-02  6:57p
        82 file(s)      1,872,278 bytes
         5 dir(s)       5,402,624 bytes free
C:\DOS\BIN>
そのような場合は、
コマンドを使用する。
このコマンドを使用すると『次の頁を見るためには、何かキーを押してください』と表示されるので、次の頁を見たい場合は、何かキー（Enter等）を押す。
 Volume in drive C is FREEDOS
 Volume Serial Number is 4228-11FA
 Directory of C:\DOS\BIN
.                      11-14-02 10:44a
..                     11-14-02 10:44a
RIPCORD  COM         5,805  09-04-02  7:20a
ASSIGN   COM        13,867  01-27-97 12:46a
ATTRIB   COM         7,136  08-01-02  2:00a
CHOICE   EXE        12,032  08-31-02  4:20p
CMDXSWP  COM        88,043  07-29-02 10:38p
COMMAND  COM        86,413  07-29-02 10:42p
KSSF     COM           828  07-29-02 10:42p
PTCHSIZE EXE        13,104  07-29-02 10:42p
VSPAWN   COM           953  07-29-02 10:42p
COMP     COM         1,285  11-27-94  3:48p
DEBUG    COM        19,606  11-24-01  7:55p
DISKCOMP EXE        18,688  05-01-01  9:48p
DISKCOPY EXE        46,176  07-15-01  2:17p
DISKCOPY INI           512  07-15-01  2:05p
DELTREE  COM         4,210  04-24-00  1:02a
DELTREE2 COM         3,858  04-24-00  1:02a
EDIT     EXE       336,449  06-23-01  2:03p
Press any key to continue . . .
カレントディレクトリを変更する際に使用するコマンドである。Powwershellでも問題なく使える。
ディスクA:\BINからの一つ上のフォルダに移動したい時には、
A:\BIN>cd ..
A:\>
.（ピリオド）はカレントディレクトリを表す。
上記の場合、連続してピリオドを記述しているが、これは１階層上のディレクトリを指定した事になる。
なお、たとえばGドライブに移動したい場合、cd /d g: になる。/dオプションが必要。
Powershellの場合、オプション無しでも cd g: というコマンドだけで移動できる。
※ 最近のwindowsの場合、ホームフォルダやその周辺のディレクトリがクラウド用に処理されている等の理由もあって、従来とは実験結果が異なる場合もある。もしその場合、外付けHDDなどを追加してGドライブやHドライブなどといった外部ドライブなどに移動して実験すれば、簡単であろう。
MS-DOSのコマンドには、内部コマンドと外部コマンドが存在することは前述の通りである。  
そのため、以下で外部コマンドとしたものについては、.COM/.EXE のファイルが無ければ使用できないので注意されたし。
以下内部コマンドにはnとつける。
ファイル属性の変更。+R/-R(読みとり専用属性)、+H/-H(隠しファイル属性)、+S/-S(システムファイル属性)、+A/-A(アーカイブ属性)の内操作したい物を記述し、その後に対象のファイル名を指定する。
文字色・背景色を設定できる。
指定のディレクトリ以下を全て削除する。
COMMAND.COMを終了する（要するにコマンドプロンプトの終了）。ほかのソフトウェアから呼び出された場合、そのソフトウェアに戻るが、それ以外の場合は何も起こらない。 nPowershellの終了も同様にexitコマンドで可能である。
NEC PC-9800シリーズの場合はハードディスクのアクセスアームを元に戻す機能を備えているため、
実行(CTRL+C または STOP キー)して電源を落とさないとハードディスクのデータが破壊される可能性がある。
パーティーションの管理を行う。下手に操作すると、データを失うので、慣れるまでパーティーションの編集はしない。Windows 95(MS-DOS 7)以降。
ディスクのフォーマットを行う。
DOSレベルで2台のPCをP2P接続するためのソフトウエア。接続にはRS-232Cかパラレルプリンターポートを使う。ホストとなるマシンのHDがゲストとなるPCで操作できるようになる。
ドライブのボリュームラベルを変更する。ドライブを指定しその後に新しいボリュームラベルを指定するか、もしくはドライブ名だけ指定してコマンドが出すプロンプトで新しいボリュームラベルを指定する。
メモリーの使用状況などを確認できる。
デバイスの設定を行う。画面のサイズも変更できる。
1画面毎にキー入力を待つ表示。"<"の後に表示するファイルを指定するか、もしくは他のコマンドの後に"| MORE"を付ける。Windowsでは、ファイル名をパラメーターにすることができる。
ファイルの移動。RENと異なり、ディレクトリやドライブを超えた移動ができる。
プロンプト( C:\> など)を変更する。
ディスクのエラーを検査する。バージョン6以降。それ以前ではCHKDSKを使用することで簡易に情報を見ることが出来る。
DOSシステムの転送。IO.SYS, MSDOS.SYS, COMMAND.COMなどを指定ドライブへコピーするが、バージョンによって転送するファイルに若干の違いがある。
ディレクトリ構造を表示する。
DOSのバージョン番号を表示する。ｌ なおPowershellでは使えない。Powershellのバージョン確認コマンドは$PSVersionTableである。
拡張されたCOPYコマンド。ファイルだけではなく、ディレクトリのコピーを行うことができる。
以下は、NEC PC-9800シリーズ用MS-DOSに付属する外部コマンドである。特定バージョンにのみ付属するもの、同名でもバージョンにより大きく異なる動作をするものについてはその旨併記している。
スイッチ等をつけずに起動すると独自のウィザード・操作メニューが表示される事が多い。(以下mで表記)
拡張グラフィックドライバを組み込む。PC-9821シリーズの256色グラフィック機能に対応。そのままでは意味を持たない。
PC-9801-86相当のPCM・FM音源の拡張サウンドドライバを組み込む。そのままでは意味を持たない。
バッチファイル用。メッセージを表示してキー入力を要求する。
ファイルの内容を16進数と文字で表示する。
ファイルの内容の一部を変更する。
既存のディレクトリ名を変更する。
スクリーンエディタ(メモ帳のようなソフト)を起動する。
仮想FDドライブドライバ。CONFIG.SYSに組み込んで使用。