DOS/コマンドプロンプト コマンド一覧
ここでは、MS-DOSプロンプトとWindowsのコマンドプロンプトで使用できるコマンドを紹介しています。一部を除き、各コマンドにプロンプト上やバッチファイルなどで使用可能なサンプルも掲載しています。
基本的なコマンド一覧はページ後半にあります → 基本的なコマンド一覧10選
English version is available for some commands: DOS/Command Prompt Reference
詳細なコマンド一覧
100個以上のコマンドを掲載しています。「目的別コマンド一覧」もあわせてご利用ください。
Notes
- ここで「Windows NT 系」と表記しているものは、Windows NT/2000/XP以降の環境および「cmd.exe」、または一時期のPlatformSDKに付属していた「win95cmd.exe」で当てはまるもので、すべてのバージョンを調べているわけではありません。「command.com」の環境では同じ Windows のバージョンでも当てはまらない可能性があるので注意してください。
- コマンド/プログラム一覧
A Adddrv 現在のセッションにキャラクタデバイスファイルを読み込みます。 Append 指定ディレクトリ以下のファイルを現在のディレクトリにあるかのように設定します。 Assoc ファイルの関連付けの表示・変更を行います。 Attrib ファイルやディレクトリの属性を表示・変更します。 B Break Ctrl+Cが入力された際の設定を変更します。 C Call バッチファイル内からバッチファイルを終了することなく呼び出します。またはサブルーチンを実行します。 Cd 現在のディレクトリを変更します。 Chcp 現在のセッションのコードページを表示・変更します。 Chdir 現在のディレクトリを変更します。 Chev 現在のセッションの言語(モード)を切り替えます。 Chkdsk ディスクの検査を行います。 Choice 画面上に選択肢を表示し、入力を促します。 Clip 与えられた入力をクリップボードにコピーします。 Cls 画面出力を消去します。 Cmd Windowsコマンドインタープリター(コマンドプロンプト)を実行します。 Color プロンプトの色を変更します。 Command MS-DOSコマンドインタープリター(MS-DOSプロンプト)を実行します。 Comp ファイルの比較を行います。 Copy ファイルのコピーを行います。 Curl URLを利用したデータの送受信を行います。 D Date システムの日付を表示・変更します。 Del ファイルの削除を行います。 Deldrv 現在のセッションに読み込まれたキャラクタデバイスファイルを解放します。 Deltree ディレクトリツリーの削除を行います。 Dir ディレクトリ内のファイルを一覧表示します。 Diskcomp ディスクの比較を行います。 Diskcopy ディスクのコピーを行います。 Doskey プロンプトの入力補助設定を行います。 E Echo 画面に文字を出力します。またはプロンプトの表示・非表示を切り替えます。 Endlocal 環境のローカル化を終了します。 Erase ファイルの削除を行います。 Exit プロンプトを終了します。 Expand 特定の方式で圧縮されたファイルを展開します。 F Fc ファイルの比較を行います。 Find ファイルから文字列を検索します。 Findstr ファイルから文字列を検索します。Findより高度な検索オプションを指定することができます。 For 指定パターンに一致するファイルまたはテキストに対してコマンドを実行します。 Forfiles 指定のディレクトリ以下にあるファイル/ディレクトリに対してコマンドを実行します。 Format ドライブのフォーマットを行います。 Ftp FTP サーバーへ接続し、ファイルの送受信を行います。 Ftype ファイルの関連付けで使用するファイルの種類を管理します。 G Goto バッチファイルで指定したラベルの位置に制御を移します。 H Help コマンドのヘルプを表示します。 Hostname Hostnameプログラムを実行したコンピューターに対するホスト名を画面に出力します。 I Icacls アクセス制御リスト(ACL)の表示・変更を行います。 If 指定した条件に一致する場合にコマンドを実行します。 Ipconfig ネットワークアダプターとIPアドレスに関する操作を行います。 L Label ドライブのボリュームラベルを表示・変更します。 Lh 上位メモリに常駐プログラムを読み込みます。 Loadhigh 上位メモリに常駐プログラムを読み込みます。 M Md ディレクトリを作成します。 Mem 常駐プログラムのメモリ使用状況を出力します。 Mkdir ディレクトリを作成します。 Mklink シンボリックリンクやハードリンクなどを作成します。 Mode デバイス設定の変更を行います。 More 長い出力を1画面ずつに分割して出力します。 Mountvol ボリュームのドライブ割り当てを管理します。 Move ファイルを移動します。 O Openfiles リモートで共有されているファイルのうち開かれているファイルの確認やクローズを行います。 P Path プログラムの検索パスを表示・設定します。 Pause 処理を停止(ポーズ)し、プロンプト上で何らかのキー入力を促します。 Popd 直前に行われたPushdのディレクトリ移動を戻します。 Print テキストをプリンターに送信し印刷します。 Prompt プロンプトの表示を設定します。 Pushd 現在のディレクトリを記憶しつつ別ディレクトリに移動します。 R Rd ディレクトリを削除します。 Recover ファイルの復旧(復元)を試みます。 Reg Windowsレジストリの操作を行います。 Rem 何も処理を行いません。バッチファイル内での注釈の記述に利用します。 Ren ファイル名を変更します。 Rename ファイル名を変更します。 Replace 指定ディレクトリ内のファイルで別ディレクトリのファイルを置き換えます。 Rmdir ディレクトリを削除します。 Robocopy 指定した条件を利用してファイルやディレクトリのコピーを行います。 Runas 現在のユーザーと異なるユーザー・権限でプログラムを実行します。 S Scandisk ディスク(ドライブ)の検査やファイルシステムの修復を行います。 Set 環境変数を表示・変更します。 Setlocal 環境のローカル化を行い、環境変数などの変更が一時的なものになるようにします。 Setver MS-DOSのバージョンテーブルを管理し、特定プログラムに見せるMS-DOSバージョンを変更します。 Setx ユーザー別/システム全体の環境変数設定に値を追加・変更します。 Shift バッチファイルに渡された引数をずらし、10個以上の引数を扱えるようにします。 Shutdown コンピューターのシャットダウン・再起動を行います。 Sort 与えられた入力を行ごとに比較し、並び替えて出力します。 Start プログラムの起動、またはファイルの既定処理を実行します。 Subst 特定ディレクトリを仮想的なドライブに割り当てます。 Switch MS-DOSの言語環境を切り替えます。 Sys MS-DOSの起動ディスク用ファイルをドライブにコピーします。 Systeminfo システム情報を表示します。 T Takeown ファイル/ディレクトリの所有者を現在のユーザーに設定します。 Taskkill 現在実行中のプログラムを終了させます。 Tasklist 現在実行中のプログラムを一覧表示します。 Time システムの時刻設定を表示・変更します。 Timeout 一定時間待機(入力待ち)を行います。 Title プロンプトウィンドウのタイトルを変更します。 Tree ディレクトリ内のファイルや子ディレクトリをツリー表示します。 Type ファイルの中身を出力します。 Tzutil タイムゾーンの設定を表示・変更します。 V Ver MS-DOSやWindowsのバージョンを出力します。 Verify ファイルの書き込みを検査するかどうかを設定します。 Vol ボリュームラベルとボリュームシリアル番号を表示します。 W Waitfor シグナルを送受信して処理の待機などを行います。 Where パターンに一致するファイルを検索してその場所を出力します。 Whoami 現在のセッションに基づくユーザー名やグループ名、権限などを出力します。 X Xcopy ファイルやディレクトリのコピーを行います。 ※ コマンド名は組み込みコマンド、コマンド名は外部コマンド(プログラム)です。
※ コマンド名はコマンドプロンプトとそこで動作するバッチファイルでのみ組み込みコマンドとして扱われます。
- 特殊な文字・デバイス名 etc.
@ バッチファイルでコマンドのエコーバックを抑制します。 : バッチファイルでラベルを宣言します。 ; Config.sysファイルでコメントの記述に利用します。 % 環境変数の値やバッチファイル引数の値の取得に利用します。 ! 環境変数の遅延展開時に利用します。 ^ 直後の特殊文字を通常文字として扱います。または複数の行を単一の行として扱うようにします。 & 2つのコマンドを連続して実行します。 || コマンドの実行に失敗した場合に実行するコマンドを指定する際に利用します。 && コマンドの実行に成功した場合に実行するコマンドを指定する際に利用します。 ( ) 複数のコマンドをグループ化して単一コマンドのように扱います。 * ワイルドカード文字として、「長さ0以上の任意の文字列」を表します。 ? ワイルドカード文字として、「任意の1文字」を表します。 CON 「コンソール」を表すデバイスファイルです。 NUL 「何もないファイル」を表すデバイスファイルです。 AUX 既定のシリアルポートに接続されたデバイスとやり取りする際に利用するデバイスファイルです。 COMn 特定の番号に対応するシリアルポートに割り当てられたデバイスとやり取りする際に利用するデバイスファイルです。 PRN 既定のパラレルポートに接続されたデバイス(プリンター)とやり取りする際に利用するデバイスファイルです。 LPTn 特定の番号に対応するパラレルポートに割り当てられたデバイスとやり取りする際に利用するデバイスファイルです。
DOSプロンプト・コマンドプロンプトについて
ここでは「DOSプロンプト・コマンドプロンプトとは何か」について大雑把に説明しています。
プロンプトとは
プロンプト(prompt)、より正確には「コマンドプロンプト」とは、簡単には「ユーザーの入力を促すための文字表示・記号」のことを指します。例えば、
C:\Windows>
という表示が「プロンプト」です。
※ Windowsの「コマンドプロンプト」は「cmd.exe」というプログラムの名前であり、「コマンドプロンプト」という言葉自体は一般的な用語として扱われます。
プロンプトは入力待ちの状態であり、ここに(主に)キーボードから決まったコマンド(とエンター)を入力することで、そのコマンドに対応する操作・処理を行うことができます。例えばWindowsのコマンドプロンプトで以下のように「ver(エンター)」と入力すると
C:\Windows>ver (注: 「ver」が入力したもの) Microsoft Windows [Version 6.1.7601] C:\Windows>
のようにVerコマンドの実行(バージョン情報の出力)が行われます。
MS-DOSプロンプトとは
MS-DOSプロンプトとはMS-DOSにおけるコマンドインタープリタープログラム「Command.com」、およびその実行状態(プロンプトを表示している状態)を指します。「MS-DOS」はMicrosoft製の「DOS」(Disk Operating System)であり、そのOS上で動作するために作られたコマンドインタープリターがCommand.comとなります。
※ 「DOS」はOSの一種(種別)であり、MS-DOS以外にもIBM社製の「PC-DOS」(IBM PC DOS)や、オープンソースの「FreeDOS」などが存在します。なお、エクスプロイト(脆弱性などを利用した悪意のある行為)の一種である「DoS (Denial of Service)」とは異なります。
MS-DOSのCommand.comはバッチ処理を行うモードと対話型でコマンドを受け付けるモードがあり、前者はバッチファイルに記述されている一連の決まった処理の実行、後者はMS-DOS上での任意プログラムの実行やディスク上のファイル一覧表示・ファイルの移動削除などの操作を提供しています。また、(特殊な設定を行っている場合を除き)OS起動時の「Autoexec.bat」の処理も担っています。
9x系までのWindows(Windows 3.xや95/98/Me)では「VDM」(Virtual DOS Machine; 仮想DOSマシン)機能を利用してCommand.comを実行できるようにし、その機能を「MS-DOSプロンプト」として提供しています。このMS-DOSプロンプトはWindows上でのCUI(Character User-InterfaceまたはConsole User-Interfaceなど; 文字ベースのユーザーインターフェイス)シェルとしての役割も果たしています。
コマンドプロンプトとは(Windows)
WindowsのコマンドプロンプトとはWindows NT系システムにおけるCommand.comの代わりとなるプログラム(cmd.exe)です。この時点では既にGUIベースのシステムとなっているため、コマンドプロンプトはその上で動作するCUIのシェルとなっていますが、Command.comに比べて入力補完機能など多くの機能追加が行われています(一部使用できない機能もあります)。Command.com自身が解釈するコマンドのほとんどはこのコマンドプロンプトで使用可能であり、バッチファイルもほぼそのまま動作します。また、Command.comと同様にプログラムの実行を行うことも可能です(一部制約はあるもののMS-DOSプログラムを含む16ビットのプログラムを実行することもできます)。
※ 16ビットプログラム(およびMS-DOSプログラム)の実行は32ビットOSにおける「NTVDM」プログラムにより実現されており、cmd.exeが提供している機能ではありません(cmd.exeは単に「プログラムの実行」を提供しているのみです)。64ビットOSではこの機能(プログラム)は提供されていないため、16ビットプログラムを実行することはできません。
また、コマンドプロンプトには拡張構文が提供されており、従来のバッチファイルでは表現できなかった複雑な処理をバッチファイルで記述することができるようになっています。
なお、より強力な処理を行うことができるPowerShellも提供されていますが、スクリプト(バッチファイル)の互換性は無く、Windows 11現在もコマンドプロンプトは引き続き提供されています。
基本的なコマンド一覧10選
このセクションでは、MS-DOSプロンプトやコマンドプロンプトでよく使うであろう基本といえるコマンドを10個紹介しています。
コマンドは、プロンプトが表示されたときにコマンド名と必要に応じてオプションやファイル名などの文字(引数)を入力してエンターキー(改行)を入力することで実行することができます。
C:\Users\Public\Documents>dir /w
上記の例では、下線が引いてある「dir /w」とエンターキー(改行)が実際に入力する内容となります。
なお、コマンドは大文字・小文字は問われないため、「dir」や「DIR」と打っても「Dir」コマンドを実行することになります。
Cd (Chdir) コマンド - カレントディレクトリの変更
Cd (Chdir) コマンドは「カレントディレクトリ」を変更するコマンドです。以下のように使います。
cd foo\bar
「カレントディレクトリ」(または「現在のディレクトリ」)は操作対象のディレクトリを指し、そのディレクトリ内にあるファイルやディレクトリをコピーしたりするときはフルパスで入力せずとも操作することができるようになります。例えば、CドライブのHogeディレクトリ(フォルダー)内に「Piyo.txt」がある場合、
C: cd \Hoge type Piyo.txt
と実行すると、「Piyo.txt」の中身を画面に出力することができます。ちなみに、カレントディレクトリは通常、
C:\Hoge>
のようにプロンプト(入力待ち)の「>」文字の左側に表示されます。(カレントディレクトリについて詳細は「カレントディレクトリについて」もご覧ください。)
なお、普通に Cd コマンドを使うと「カレントドライブ」(カレントディレクトリのドライブ文字部分)を変更することはできません。カレントドライブを変更したい場合は、「X:(エンター)」(Xはドライブ文字)と入力するか、Cd コマンドに「/D」オプションを付けて以下のように実行します。
cd /D C:\Hoge
[MS-DOS, Windows 95/98/Me] MS-DOSやWin9xでは「/D」オプションは使えません。
Cd (Chdir) コマンドの詳細については Cd, Chdir コマンドのページをご覧ください。
Dir コマンド - ディレクトリ内の一覧を表示
Dir コマンドを使うと、指定のディレクトリに存在するファイルやディレクトリを一覧で確認することができます。
C:\Hoge>dir ドライブ C のボリューム ラベルは Windows です ボリューム シリアル番号は 44AD-E76B です C:\Hoge のディレクトリ 2022/07/30 15:39 <DIR> . 2022/07/30 15:39 <DIR> Foo 2022/07/30 15:40 8 Piyo.txt 2022/07/30 15:44 0 あいうえお.txt 1 個のファイル 8 バイト 1 個のディレクトリ 350,669,795,328 バイトの空き領域
ファイル数が多くなってくると一覧が長くなって見づらくなるため、「/W」オプションを付けて
dir /W
と実行することも多くあります。
Dir コマンドの詳細については Dir コマンドのページをご覧ください。
Type コマンド - テキストファイルの中身の出力
テキストファイルの中身を確認したい場合には Type コマンドを使用します。「type」のあとにファイル名を指定して以下のように実行します。
type Piyo.txt
Type コマンドは中身をそのままテキストとして出力するので、画像などのファイルを指定すると文字化けしたようなテキストが出力されてしまいます。あくまでテキストファイルと分かっているときにその内容を確認する場合に使います。
なお、テキストが長くて見づらい場合、「more」というコマンド(プログラム)を以下のように組み合わせて使います。
type Piyo.txt | more
Type コマンドの詳細については Type コマンドのページを、More コマンド(プログラム)の詳細については More プログラムのページをご覧ください。
Copy コマンド - ファイルのコピー
Copy コマンドはその名の通りファイルをコピーする際に用います。以下のように、「コピー元」「コピー先」の順でファイル名を指定して実行します。
copy Piyo.txt PiyoPiyo.txt
別のドライブやディレクトリにコピーすることもできます。例えば「D:\Data」ディレクトリに「Piyo.txt」をコピーしたい場合は
copy Piyo.txt D:\Data
と書くことでコピーできます。
また、ディレクトリ内のすべてのファイルをコピーしたい場合は、ワイルドカードを用いて
copy *.* D:\Data
と書きます。
※ ワイルドカードを使わずに複数のファイルをコピーしたい場合は、Copy コマンドを複数回実行する必要があります。
なお、コピー先にファイルが既に存在する場合は「上書きしますか? (Yes/No/All)」という選択肢が表示されるため、上書きする場合は「Y」、しない場合は「N」を入力します。常に上書きしたい場合は Copy コマンドに「/Y」オプションを指定して
copy /Y Piyo.txt D:\Data
と実行します。
Copy コマンドではディレクトリをコピーすることはできません。ディレクトリを一緒にコピーする場合は Xcopy コマンド(プログラム)を利用します。
Copy コマンドの詳細については Copy コマンドのページをご覧ください。
Move コマンド - ファイルの移動
ファイルのコピーではなく移動を行いたい場合は Move コマンドを使います。以下のように「移動したいファイル」「移動先」の順で指定して実行します。
move Piyo.txt D:\Data
移動先に同じ名前のファイルが既に存在する場合はファイルの移動に失敗します。強制的に移動(上書き)したい場合は、「/Y」オプションを使って
move /Y Piyo.txt D:\Data
とします。
Move コマンドの詳細については Move コマンドのページをご覧ください。
Ren (Rename) コマンド - ファイル名の変更
Ren (Rename) コマンドはファイル名を変更する際に用います。以下のように「名前を変更したいファイル」「新しいファイル名」の順で指定して実行します。
ren C:¥Hoge¥Piyo.txt Piyo2.txt
この例では、「C:\Hoge\Piyo.txt」のファイルが「C:\Hoge\Piyo2.txt」にリネームされます。Move コマンドと異なり、ファイルが存在するディレクトリは変わりません。
Ren (Rename) コマンドの詳細については Ren, Rename コマンドのページをご覧ください。
Xcopy コマンド(プログラム) - ファイルとディレクトリのコピー
Copy コマンドではファイルのみコピーすることができましたが、ディレクトリの中にあるファイルとディレクトリの両方のコピーを行いたい場合は Xcopy コマンド(プログラム)を使用します。基本的な使い方は Copy コマンドと似ており、「コピー元」「コピー先」の順で指定して実行しますが、ディレクトリ内にあるディレクトリもセットでコピーしたい場合は「/S /E」オプションを追加指定します。
xcopy /S /E C:\Hoge D:\Data\Hoge\
なお、この例では「C:\Hoge」をディレクトリごと「D:\Data」内にコピーします。このコピーを行う場合「D:\Data\Hoge\」と末尾に「\」文字が必要で、「D:\Data\Hoge」とすると「D:\Data\Hoge は受け側のファイル名ですか、またはディレクトリ名ですか(F= ファイル、D= ディレクトリ)?」という入力待ちになります。
Xcopy コマンド(プログラム)の詳細については Xcopy プログラムのページをご覧ください。
Del (Erase) コマンド - ファイルの削除
Del (Erase) コマンドはファイルの削除を行うコマンドです。「del」のあとにファイル名を指定して以下のように実行します。
del Piyo2.txt
ディレクトリ内にあるファイルをすべて削除する場合はワイルドカードを使って
del C:\Hoge\*.*
のように実行します。ただしディレクトリそのものは削除しないため、ディレクトリを(またはディレクトリごと)削除したい場合は Rd (Rmdir) コマンドを使う必要があります。
Del (Erase) コマンドの詳細については Del, Erase コマンドのページをご覧ください。
Md (Mkdir) コマンド - ディレクトリの作成
新たなディレクトリを作成したい場合は Md (Mkdir) コマンドを使います。以下のように使います。
md Foo
サブディレクトリも一括で作成したい場合は、サブディレクトリのパスを指定する形で
md Bar\Baz
などと実行します。
※ ただしMS-DOSやWin9x系、あるいはコマンドプロンプトで拡張構文が無効になっている場合はこの方法は使えません。
Md (Mkdir) コマンドの詳細については Md, Mkdir コマンドのページをご覧ください。
Rd (Rmdir) コマンド - ディレクトリの削除
Rd (Rmdir) コマンドを使うと既存のディレクトリを削除することができます。以下のように使います。
rd Foo
この形式で実行した場合、ディレクトリが空でないと削除することができません。ディレクトリを中身ごと削除したい場合は、
rd /S /Q Foo
のように「/S」オプションを使います。(/Q オプションは確認のメッセージを抑制するときに使います。)
Rd (Rmdir) コマンドの詳細については Rd, Rmdir コマンドのページをご覧ください。
その他コンテンツ
よくある質問
「よくある質問」のページの抜粋です。より多くの質問については「よくある質問」のページをご覧ください。
コマンドプロンプトはどうやって起動する?
楽な手順は、Windowsキーを押しながらRキーを押して「ファイル名を指定して実行」を開き、「cmd」を入力してOKする手順です。また、Windows 11の場合は「Windows ツール」の中に「コマンドプロンプト」が含まれています。
よく使うコマンドは?
ディレクトリを移動するCd(Chdir)コマンドや、CopyやXcopyなどのファイルをコピーするコマンド、Md(Mkdir)やRd(Rmdir)などのディレクトリを操作するコマンドなどがよく使われます。基本的なコマンド一覧10選も合わせてご覧ください。
ファイルをコピーするコマンドは?
バッチファイルにおけるif文は?
バッチファイルにおけるfor文は?
Forというコマンドがありますが、繰り返したい内容によって構文が変わります。現在のディレクトリにあるファイルを列挙しながらコマンドを実行するには「for %%A in (ファイルパターン) do %%Aを使ったコマンド」とし、ファイルに書かれたテキストを1行ずつ読みながらコマンドを実行するには「for /f "delims=区切り文字" %%A in (ファイル名) do %%Aを使ったコマンド」と実行します。