Programming Field

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
    BreakCtrl+Cが入力された際の設定を変更します。
    C
    Callバッチファイル内からバッチファイルを終了することなく呼び出します。またはサブルーチンを実行します。
    Cd現在のディレクトリを変更します。
    Chcp現在のセッションのコードページを表示・変更します。
    Chdir現在のディレクトリを変更します。
    Chev現在のセッションの言語(モード)を切り替えます。
    Chkdskディスクの検査を行います。
    Choice画面上に選択肢を表示し、入力を促します。
    Clip与えられた入力をクリップボードにコピーします。
    Cls画面出力を消去します。
    CmdWindowsコマンドインタープリター(コマンドプロンプト)を実行します。
    Colorプロンプトの色を変更します。
    CommandMS-DOSコマンドインタープリター(MS-DOSプロンプト)を実行します。
    Compファイルの比較を行います。
    Copyファイルのコピーを行います。
    CurlURLを利用したデータの送受信を行います。
    D
    Dateシステムの日付を表示・変更します。
    Delファイルの削除を行います。
    Deldrv現在のセッションに読み込まれたキャラクタデバイスファイルを解放します。
    Deltreeディレクトリツリーの削除を行います。
    Dirディレクトリ内のファイルを一覧表示します。
    Diskcompディスクの比較を行います。
    Diskcopyディスクのコピーを行います。
    Doskeyプロンプトの入力補助設定を行います。
    E
    Echo画面に文字を出力します。またはプロンプトの表示・非表示を切り替えます。
    Endlocal環境のローカル化を終了します。
    Eraseファイルの削除を行います。
    Exitプロンプトを終了します。
    Expand特定の方式で圧縮されたファイルを展開します。
    F
    Fcファイルの比較を行います。
    Findファイルから文字列を検索します。
    Findstrファイルから文字列を検索します。Findより高度な検索オプションを指定することができます。
    For指定パターンに一致するファイルまたはテキストに対してコマンドを実行します。
    Forfiles指定のディレクトリ以下にあるファイル/ディレクトリに対してコマンドを実行します。
    Formatドライブのフォーマットを行います。
    FtpFTP サーバーへ接続し、ファイルの送受信を行います。
    Ftypeファイルの関連付けで使用するファイルの種類を管理します。
    G
    Gotoバッチファイルで指定したラベルの位置に制御を移します。
    H
    HostnameHostnameプログラムを実行したコンピューターに対するホスト名を画面に出力します。
    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ファイルの復旧(復元)を試みます。
    RegWindowsレジストリの操作を行います。
    Rem何も処理を行いません。バッチファイル内での注釈の記述に利用します。
    Renファイル名を変更します。
    Renameファイル名を変更します。
    Replace指定ディレクトリ内のファイルで別ディレクトリのファイルを置き換えます。
    Rmdirディレクトリを削除します。
    Robocopy指定した条件を利用してファイルやディレクトリのコピーを行います。
    Runas現在のユーザーと異なるユーザー・権限でプログラムを実行します。
    S
    Scandiskディスク(ドライブ)の検査やファイルシステムの修復を行います。
    Set環境変数を表示・変更します。
    Setlocal環境のローカル化を行い、環境変数などの変更が一時的なものになるようにします。
    SetverMS-DOSのバージョンテーブルを管理し、特定プログラムに見せるMS-DOSバージョンを変更します。
    Setxユーザー別/システム全体の環境変数設定に値を追加・変更します。
    Shiftバッチファイルに渡された引数をずらし、10個以上の引数を扱えるようにします。
    Shutdownコンピューターのシャットダウン・再起動を行います。
    Sort与えられた入力を行ごとに比較し、並び替えて出力します。
    Startプログラムの起動、またはファイルの既定処理を実行します。
    Subst特定ディレクトリを仮想的なドライブに割り当てます。
    SwitchMS-DOSの言語環境を切り替えます。
    SysMS-DOSの起動ディスク用ファイルをドライブにコピーします。
    Systeminfoシステム情報を表示します。
    T
    Takeownファイル/ディレクトリの所有者を現在のユーザーに設定します。
    Taskkill現在実行中のプログラムを終了させます。
    Tasklist現在実行中のプログラムを一覧表示します。
    Timeシステムの時刻設定を表示・変更します。
    Timeout一定時間待機(入力待ち)を行います。
    Titleプロンプトウィンドウのタイトルを変更します。
    Treeディレクトリ内のファイルや子ディレクトリをツリー表示します。
    Typeファイルの中身を出力します。
    Tzutilタイムゾーンの設定を表示・変更します。
    V
    VerMS-DOSやWindowsのバージョンを出力します。
    Verifyファイルの書き込みを検査するかどうかを設定します。
    Volボリュームラベルとボリュームシリアル番号を表示します。
    W
    Waitforシグナルを送受信して処理の待機などを行います。
    Whereパターンに一致するファイルを検索してその場所を出力します。
    Whoami現在のセッションに基づくユーザー名やグループ名、権限などを出力します。
    X
    Xcopyファイルやディレクトリのコピーを行います。
    コマンド名は組み込みコマンド、コマンド名は外部コマンド(プログラム)です。
    コマンド名はコマンドプロンプトとそこで動作するバッチファイルでのみ組み込みコマンドとして扱われます。
  • パイプ記号/リダイレクション
    |[パイプ] 左コマンドの出力を右コマンドの入力にします。
    <[入力リダイレクト] 指定ファイルの内容をコマンドの入力にします。
    >[出力リダイレクト] コマンドの出力を指定ファイルに書き込みます。
    >>[出力リダイレクト] コマンドの出力を指定ファイルに追加します。
  • 特殊な文字・デバイス名 etc.
    @バッチファイルでコマンドのエコーバックを抑制します。
    :バッチファイルでラベルを宣言します。
    ;Config.sysファイルでコメントの記述に利用します。
    %環境変数の値やバッチファイル引数の値の取得に利用します。
    !環境変数の遅延展開時に利用します。
    ^直後の特殊文字を通常文字として扱います。または複数の行を単一の行として扱うようにします。
    &2つのコマンドを連続して実行します。
    ||コマンドの実行に失敗した場合に実行するコマンドを指定する際に利用します。
    &&コマンドの実行に成功した場合に実行するコマンドを指定する際に利用します。
    ( )複数のコマンドをグループ化して単一コマンドのように扱います。
    *ワイルドカード文字として、「長さ0以上の任意の文字列」を表します。
    ?ワイルドカード文字として、「任意の1文字」を表します。
    CON「コンソール」を表すデバイスファイルです。
    NUL「何もないファイル」を表すデバイスファイルです。
    AUX既定のシリアルポートに接続されたデバイスとやり取りする際に利用するデバイスファイルです。
    COMn特定の番号に対応するシリアルポートに割り当てられたデバイスとやり取りする際に利用するデバイスファイルです。
    PRN既定のパラレルポートに接続されたデバイス(プリンター)とやり取りする際に利用するデバイスファイルです。
    LPTn特定の番号に対応するパラレルポートに割り当てられたデバイスとやり取りする際に利用するデバイスファイルです。
  • 代表的な環境変数
    COMSPECコマンドインタープリターの場所を保持する環境変数です。
    PATH実行するプログラムの検索パスを保持する環境変数です。
    PATHEXT拡張子が省略された際に付加を試みる拡張子リストを保持する環境変数です。
    PROMPTプロンプト表示設定を保持する環境変数です。
    TEMP一時的なデータやり取りに利用するディレクトリのパスを保持する環境変数です。
    TMP一時的なデータやり取りに利用するディレクトリのパスを保持する環境変数です。

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)コマンドや、CopyXcopyなどのファイルをコピーするコマンド、Md(Mkdir)Rd(Rmdir)などのディレクトリを操作するコマンドなどがよく使われます。基本的なコマンド一覧10選も合わせてご覧ください。

ファイルをコピーするコマンドは?

CopyXcopyRobocopyの3種類があります。シンプルなのはCopy、ディレクトリごとコピーしたいときはXcopy、ファイルの取捨選択などを細かく制御したいときはRobocopyを使います。

バッチファイルにおけるif文は?

if 式1==式2 コマンド」がわかりやすいif文です。その他、「if exist ファイル コマンド」や「if errorlevel 終了コード コマンド」という構文もあります。詳しくはIfのページをご覧ください。

バッチファイルにおけるfor文は?

Forというコマンドがありますが、繰り返したい内容によって構文が変わります。現在のディレクトリにあるファイルを列挙しながらコマンドを実行するには「for %%A in (ファイルパターン) do %%Aを使ったコマンド」とし、ファイルに書かれたテキストを1行ずつ読みながらコマンドを実行するには「for /f "delims=区切り文字" %%A in (ファイル名) do %%Aを使ったコマンド」と実行します。