カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまにRuby on Railsなども。

Windows あるフォルダ以下のファイル一覧を作成する

Windowsで特定のフォルダ以下の全ファイルを一覧化したい場合に使えるコマンドプロンプトのコマンドについてまとめた。
Linuxで言うfindやtreeコマンドのようなもので、
大量のファイルが入ったHDDにほしいファイルがあるか手軽に調べたい場合など、ファイル一覧をテキスト化しておくと便利なことも多い。
方法は二つあるので、それぞれについて簡単に紹介する。

dirコマンドでファイルフルパスの一覧作成

コマンドプロンプトで以下のコマンドを実行する。

dir /B /S C:\path\to\folder > filelist.txt

すると、以下のような対象フォルダ以下の全ファイルのフルパスがfilelist.txtに出力される。

C:\test\dir1
C:\test\dir2
C:\test\dir1\subdir1
C:\test\dir1\subdir2
C:\test\dir1\subdir1\subsubdir
C:\test\dir1\subdir1\test2.txt
C:\test\dir1\subdir1\subsubdir\test1.txt
C:\test\dir1\subdir2\test3.txt
C:\test\dir1\subdir2\test4.txt
C:\test\dir2\test5.txt

f:id:osn_th:20170314114946p:plain

dirコマンドの/Bオプションでファイル名のみの表示(余計な見出し等を出力しないように)し、/Sオプションでそのフォルダ以下のフォルダを再帰的に見るようにする。
全てのファイルがフルパスで表示されるので、目的のファイルを取得したい場合などはこちらが便利。

treeコマンドでフォルダ構造の図式作成

コマンドプロンプトで以下のコマンドを実行する。

tree /F C:\path\to\folder > filetree.txt

すると、以下のような対象フォルダ以下のファイルを含むフォルダ構造の図式がfiletree.txtに出力される。

フォルダー パスの一覧
ボリューム シリアル番号は 000000BB FEDB:E4B2 です
C:\TEST
├─dir1
│ ├─subdir1
│ │ │ test2.txt
│ │ │
│ │ └─subsubdir
│ │     test1.txt
│ │    
│ └─subdir2
│     test3.txt
│     test4.txt
│    
└─dir2
    test5.txt

f:id:osn_th:20170314114944p:plain

treeコマンドのデフォルトはフォルダのみ表示のため、/Fオプションでファイル名も表示するようにする。
フォルダ構造を把握するにはこちらが便利だが、ファイル数が多くなると見辛くなる。

まとめ

Windowsのコマンドプロンプトで特定のフォルダ以下のファイル一覧をテキストファイルで出力する二つの方法を見た。
個人的にはdirコマンドの方が汎用性が高く便利だと思うが、treeコマンドも場合によっては使えることもありそうなので、両方知っていて損はなさそう。

以上