Programming Field

Dir - DOS/コマンドプロンプト コマンド一覧

ディレクトリにあるファイルとディレクトリを一覧表示します。

使い方

Dir使用例

Dirコマンドは主に現在のディレクトリ(カレントディレクトリ)にあるファイルを一覧で表示する際に用います。コマンドを実行すると画面(コンソール)にオプションに応じたファイル一覧が表示されます。Linuxにおける「ls」コマンドと役割が似ています。

Dir使用例2

なお、「dir」のみでは詳細表示になるため、「dir /W」と指定する形もよく用いられます。また、純粋にファイル(ディレクトリ)の名前のみを出力したい場合は「dir /B」と実行することも多くあります。

Dirコマンドには出力を制御するためのオプションが豊富に用意されています。詳しくは次のセクション「構文」をご覧ください。

構文

dir [<drive>:][<path>][<file-name>] [/A[[:]<attribute>]] [/B] [/L] [/P] [/V] [/W]
  [/C] [/D] [/N] [/O[[:]<sort>]] [/Q] [/R] [/S] [/T[[:]<time-field>]] [/X] [/4]

オプション一覧

<drive>:, <path>, <file-name> 一覧表示するディレクトリ、またはファイル名を指定します。省略すると現在のディレクトリについて表示されます。ファイル名の指定は、日付情報を取得するときに使えます。ただし、指定したファイルが隠しファイルやシステムファイルの場合は「/A:H」などと指定してもファイルが見つからないことになりますのでご注意ください。
/A[[:]<attribute>]

一覧表示の対象とするファイルの属性を絞ります。属性(<attribute>)を指定しない場合は、隠しファイルとシステムファイル属性を持つファイルもすべて含まれます。

<attribute> には絞り込む属性を指定します。属性は D R A S H のいずれかを指定します(これらの説明はAttribを参照してください。D はディレクトリです)。先頭に「-」を付けると「その属性以外」を意味します。

このスイッチが指定されない場合は、表示する対象に隠しファイルとシステムファイルは含まれませんが、ディレクトリは含まれる形になります。

[Windows NT 系/XP 以降] 属性に「I」(インデックス対象でないファイル)や「O」(オフラインファイル)、「L」(再解析ポイント(リパースポイント)≒ジャンクション及びシンボリックリンク)も指定することができます。

/B ファイルとディレクトリの名称のみを表示します。このスイッチを指定すると /V、/W などは無効になり、一行に1つずつファイル名、またはディレクトリ名が表示されます。ディレクトリ名には [ ] は付かず、また特殊ディレクトリ「.」と「..」は表示されなくなります。
/L ファイル名をすべて小文字で表示します。(Windows XP 以降では全角大文字も小文字になりますが、Windows 95 では短いファイル名のみ小文字表記になり、短いファイル名でも全角文字は小文字になりません。)
/P 一覧が画面をはみ出る場合、「続行するには何かキーを押してください」のメッセージを表示しながら、1ページごとに一覧を区切って表示します。(Moreコマンドを併用した場合と似ています。)
/V

[MS-DOS, Windows 95/98/Me のみ] 一覧を詳細表示します。このとき、表示にはファイルの割り当てサイズ、アクセス日時なども含まれます。

/W を指定するとこのスイッチは無効になります。(または「無効なスイッチ」となります。)

/W

一覧をワイド表示します。この表示では、1行にいくつかファイル/ディレクトリ名が入った、表のように左右の間隔が整った表示方法となり、ディレクトリ名は [ ] で括られます。この表示では更新日時やファイルサイズは表示されません。

/B を指定するとこのスイッチは無効になり、逆にこのスイッチを指定すると /V は無効になります。

/C [Windows NT 系/XP 以降] ファイルのサイズに桁区切りを入れて表示します。なおこれは既定のオプションなので、桁区切りを入れたくない場合は「/-C」と指定します。
/D [Windows NT 系/XP 以降] /W に似ていますが表示する順番が横方向ではなく縦方向となります。
/N [Windows NT 系/XP 以降] ファイル名を一覧の右側に表示します。「/N」は既定のオプションであり、「/-N」と指定するとファイル名が一覧の左側に「短いファイル名」+「拡張子」で表示されます。
/O[[:]<sort>]

ファイルの表示する順序を変更します。<sort> には以下の内容を指定します。

Nファイル名をアルファベット順で並び替えます。
Sファイルのサイズを小さい順で並び替えます。
Eファイルの拡張子をアルファベット順で並び替えます。
Dファイルの日時が古い順で並び替えます。
Gディレクトリから先に表示します。
A[Windows 95/98/Me のみ] ファイルの最終アクセス日時が新しい順で並び替えます。

いずれのスイッチも、逆順にしたい場合はその文字の前に「-」を付けます(/O:-S など)。<sort> を省略すると /O:N となります。

/Q [Windows NT 系/XP 以降] 一覧表示にファイルの所有者名を追加します。/B、/W を指定すると無効になります。
/R

[Windows Vista?以降] ファイルに紐づけられている代替データストリーム(Alternate Data Stream)を一覧に含めます。代替データストリームはファイルによってファイルのデータとは別に作成されるものであり、ファイルのように名前とデータを持ちます。通常Dirコマンドではこれらが存在しても一覧に表示されませんが、/R オプションを指定することでファイルとともに保持している代替データストリームが表示されます。

なお、/W や /B が指定されているときは /R は無視されます。

※ 代替データストリームの中身はコマンドプロンプト上でも作成・表示できますが、コマンドプロンプトの機能で直接削除することはできず、元ファイルの中身を別のファイルに移してからファイルごと削除する必要があります。なお、Copyコマンドを使うと代替データストリームもコピーされます。

/S [Windows NT 系/XP 以降] 対象にサブディレクトリがある場合は、その中身もすべて表示します。(量が膨大になる可能性があるのでご注意ください。)
/T[[:]<time-field>]

[Windows NT 系/XP 以降] 一覧に表示する日時を選択します。また、/O スイッチの並び替えの対象になる日時もこのスイッチで決定されます。<time-field> には以下のいずれかを指定します。

C作成日時
A最終アクセス日時
W最終更新日時

<time-field> を省略すると /T:W (/T を指定しないのと同じ)となります。

/X [Windows NT 系/XP 以降] 通常のファイル名の前に短い形式のファイル名を入れて表示します。存在しない場合は空白になります。
/4 [Windows NT 系/XP 以降] 年号を必ず4桁で表示します。

解説

環境変数「DIRCMD」が存在する場合、Dirコマンドはこの値をオプションの一部として用います。環境変数DIRCMDを使うことにより、Dirコマンドの既定のオプションを設定してコマンドラインからの実行を簡略化することができます。なお、DIRCMDに記述されているオプションを無効にする場合、「/-W」のように「-」を入れたオプションをDirコマンドに指定します。

Dirコマンドにパス名を指定しなかった場合は現在のディレクトリを対象にファイル名等の出力を行います。現在のディレクトリを変更するにはCd(Chdir)を用い、現在のドライブを変更するにはx:」(xはドライブ文字)と直接入力します。(Dirコマンドにディレクトリ名を指定することもできます。)

[Windows NT 系/XP 以降] 「/W」や「/B」などを指定せずに一覧表示を行う際、そのリストの中に再解析ポイントファイル/ディレクトリが含まれている場合は、それらが指す実際のファイル/ディレクトリも併記されます。

サンプル1

dir /W

現在のディレクトリにあるファイルとディレクトリを一覧表示します。(/W では日付情報などが入らないので、リストが冗長にならない)

サンプル2

dir *.sys /A /W

現在のディレクトリにある、拡張子が sys のファイルを、隠しファイルなどを含めてすべて表示します。

サンプル3

set DIRCMD=/W
dir *.sys /A

サンプル2と同じ結果が得られます。ただし、DIRCMD環境変数が変更されない限り、以降のDirコマンドは「/W」オプションが付いているものと見なされます。

サンプル4

set DIRCMD=/W
dir *.sys /A /-W

サンプル2やサンプル3と異なる結果が得られます。

サンプル5

dir C:\WINDOWS /A /B > list.txt

C:\WINDOWS 内にあるすべてのファイルとディレクトリの名前のみ(一覧)を、list.txt に書き出します。

関連項目