Programming Field

DOS コマンド一覧

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 系のみ] 属性に「I」(インデックス対象でないファイル)や「L」(再解析ポイント(リパースポイント)≒ジャンクション及びシンボリックリンク)も指定することができます。
/B
ファイルとディレクトリの名称のみを表示します。このスイッチを指定すると /V、/W などは無効になり、一行に1つずつファイル名、またはディレクトリ名が表示されます。ディレクトリ名には [ ] は付かず、また特殊ディレクトリ「.」と「..」は表示されなくなります。
/L
ファイル名をすべて小文字で表示します。(Windows XP では全角大文字も小文字になりましたが、Windows 95 では短いファイル名のみ小文字表記になり、短いファイル名でも全角文字は小文字になりませんでした。)
/P
一覧が画面をはみ出る場合、「続行するには何かキーを押してください」のメッセージを表示しながら、1ページごとに一覧を区切って表示します。(More コマンドを実装したような形)
/V
[Windows 95/98/Me のみ?] 一覧を詳細表示します。このとき、表示にはファイルの割り当てサイズ、アクセス日時なども含まれます。
/W を指定するとこのスイッチは無効になります。(または「無効なスイッチ」となります。)
/W
一覧をワイド表示します。この表示では、1行にいくつかファイル/ディレクトリ名が入った、表のように左右の間隔が整った表示方法となり、ディレクトリ名は [ ] で括られます。この表示では更新日時やファイルサイズは表示されません。
/B を指定するとこのスイッチは無効になり、逆にこのスイッチを指定すると /V は無効になります。
/C
[Windows NT 系のみ] ファイルのサイズに桁区切りを入れて表示します。なおこれは既定のオプションなので、桁区切りを入れたくない場合は「/-C」と指定します。
/D
[Windows NT 系のみ] /W に似ていますが表示する順番が横方向ではなく縦方向となります。
/N
[Windows NT 系のみ] ファイル名を一覧の右側に表示します。「/N」は既定のオプションであり、「/-N」と指定するとファイル名が一覧の左側に「短いファイル名」+「拡張子」で表示されます。
/O[[:]<sort>]
ファイルの表示する順序を変更します。<sort> には以下の内容を指定します。
Nファイル名をアルファベット順で並び替えます。
Sファイルのサイズを小さい順で並び替えます。
Eファイルの拡張子をアルファベット順で並び替えます。
Dファイルの日時が古い順で並び替えます。
Gディレクトリから先に表示します。
A[Windows 95/98/Me] ファイルの最終アクセス日時が新しい順で並び替えます。
いずれのスイッチも、逆順にしたい場合はその文字の前に「-」を付けます(/O:-S など)。<sort> を省略すると /O:N となります。
/Q
[Windows NT 系のみ] 一覧表示にファイルの所有者名を追加します。/B、/W を指定すると無効になります。
/R
[Windows Vista?以降] ファイルに紐づけられている代替データストリーム(Alternate Data Stream)を一覧に含めます。代替データストリームはファイルによってファイルのデータとは別に作成されるものであり、ファイルのように名前とデータを持ちます。通常Dirコマンドではこれらが存在しても一覧に表示されませんが、/R オプションを指定することでファイルとともに保持している代替データストリームが表示されます。
なお、/W や /B が指定されているときは /R は無視されます。
※ 代替データストリームの中身はコマンドプロンプト上でも作成・表示できますが、コマンドプロンプトの機能で直接削除することはできず、元ファイルの中身を別のファイルに移してからファイルごと削除する必要があります。なお、Copyコマンドを使うと代替データストリームもコピーされます。
/S
[Windows NT 系のみ] 対象にサブディレクトリがある場合は、その中身もすべて表示します。(量が膨大になる可能性があるので注意)
/T[[:]<time-field>]
[Windows NT 系のみ] 一覧に表示する日時を選択します。また、/O スイッチの並び替えの対象になる日時もこのスイッチで決定されます。<time-field> には以下のいずれかを指定します。
C作成日時を表示します。
A最終アクセス日時を表示します。
W最終更新日時を表示します。
<time-field> を省略すると /T:W (/T を指定しないのと同じ)となります。
/X
[Windows NT 系のみ] 通常のファイル名の前に短い形式のファイル名を入れて表示します。存在しない場合は空白になります。
/4
[Windows NT 系のみ] 年号を必ず4桁で表示します。

解説

Dirコマンドは主に現在のディレクトリ(カレントディレクトリ)にあるファイルを調べる際に用います。「dir」のみでは詳細表示になるため、「dir /W」と指定する形がよく用いられます。Linuxにおける「ls」コマンドと役割が似ています。

環境変数「DIRCMD」が存在する場合、Dirコマンドはこの値をオプションの一部として用います。DIRCMDに記述されているオプションを無効にする場合、「/-W」のように「-」を入れたオプションをDirコマンドに指定します。

なお、現在のディレクトリを変更するにはCd(Chdir)を用い、現在のドライブを変更するには「x:」(xはドライブ文字)と直接入力します。(Dirコマンドにディレクトリ名を指定することもできます。)

[Windows NT 系のみ] 「/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 に書き出します。