このエントリーをはてなブックマークに追加


サブディレクトリを含むディレクトリリストを取得する方法

dirコマンドのオプションを組み合わせることにより、指定したディレクトリおよびそのサブフォルダの一覧をフルパスで取得することができます。


dirオプションを組み合わせてサブディレクトリを含む一覧を取得する

以下の構文により、サブディレクトリを含むディレクトリのフルパスを取得することができます。

dir /ad /b /s 起点となるディレクトリ

例えば、Windowsディレクトリ以下のディレクトリ一覧を取得したい場合は、以下のようになります。

C:\Users\Sakura>dir /ad /b /s C:\Windows
C:\Windows\addins
C:\Windows\ADFS
C:\Windows\appcompat
C:\Windows\AppPatch
C:\Windows\AppReadiness
C:\Windows\assembly
C:\Windows\AUInstallAgent
C:\Windows\bcastdvr
C:\Windows\Boot
<省略>

大量に出力される場合などは、リダイレクトしてファイルに出力すれば便利ですね。

dir /ad /b /s 起点となるディレクトリ > 出力先ファイル名

sortコマンドを使用する

上記のコマンドを使うと、サブディレクトリ内のサブディレクトリのような表示順所にならない場合があります。
パイプを使ってsortコマンドに出力を渡せば、意図した動作になります。

C:\Users\Sakura>dir /ad /b /s C:\Windows | sort
C:\Windows\addins
C:\Windows\ADFS
C:\Windows\ADFS\ar
C:\Windows\ADFS\bg
C:\Windows\ADFS\cs
C:\Windows\ADFS\da
<省略>
C:\Windows\appcompat
C:\Windows\appcompat\appraiser
C:\Windows\appcompat\appraiser\Gated
C:\Windows\appcompat\appraiser\Telemetry
C:\Windows\appcompat\Programs
C:\Windows\appcompat\UA
C:\Windows\AppPatch
C:\Windows\AppPatch\apppatch64
C:\Windows\AppPatch\Custom
C:\Windows\AppPatch\Custom\Custom64
C:\Windows\AppPatch\en-US
C:\Windows\AppPatch\ja-JP
C:\Windows\AppReadiness
C:\Windows\assembly
C:\Windows\assembly\GAC
C:\Windows\assembly\GAC_32
C:\Windows\assembly\GAC_32\CustomMarshalers
C:\Windows\assembly\GAC_32\CustomMarshalers\2.0.0.0__b03f5f7f11d50a3a
C:\Windows\assembly\GAC_32\ISymWrapper
C:\Windows\assembly\GAC_32\ISymWrapper\2.0.0.0__b03f5f7f11d50a3a
<省略>

dirコマンドのオプションについて

dirコマンドのオプションは以下の通りです。

C:\Users\Takayuki>dir /?

ディレクトリ中のファイルとサブディレクトリを一覧表示します。

DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]

  [ドライブ:][パス][ファイル名]
              一覧表示するドライブ、ディレクトリ、またはファイルを指定します。

  /A          指定された属性のファイルを表示します。
  属性        D  ディレクトリ                R  読み取り専用
              H  隠しファイル                A  アーカイブ
              S  システム ファイル           I  非インデックス対象ファイル
               L  再解析ポイント             -  その属性以外
  /B          ファイル名のみを表示します (見出しや要約が付きません)。
  /C          ファイル サイズを桁区切り表示します。これは
              既定の設定です。/-C とすると桁区切り表示されません。
  /D          /W と同じですが、ファイルを列で並べ替えた一覧を表示します。
  /L          小文字で表示します。
  /N          ファイル名を右端に表示する一覧形式を使用します。
  /O          ファイルを並べ替えて表示します。
  ソート順    N  名前順 (アルファベット)     S  サイズ順 (小さい方から)
              E  拡張子順 (アルファベット)   D  日時順 (古い方から)
              G  グループ (ディレクトリから) -  降順
  /P          1 画面ごとに停止して表示します。
  /Q          ファイルの所有者を表示します。
  /R          ファイルの代替データ ストリームを表示します。
  /S          指定されたディレクトリおよびそのサブディレクトリのすべての
              ファイルを表示します。
  /T          どのタイム フィールドを表示するか、または並べ替えに使用するかを
              指定します。
  タイムフィールド
              C  作成
              A  最終アクセス
              W  最終更新
  /W          ワイド一覧形式で表示します。
  /X          このオプションは MS-DOS 形式以外のファイル名に対する短い名前を
              表示します。長い名前の前に短い名前を表示する点を除けば、
              /N オプションと同じです。短い名前がない場合は、ブランクに
              なります。
  /4          4 つの数字で年を表示します。

環境変数 DIRCMD にスイッチを設定できます。
/-W のように - (ハイフン) を前に付けると、そのスイッチは無効になります。

以上、dirコマンドのオプションを組み合わせて、ディレクトリのフルパス一覧を取得する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-16 (水) 21:33:18