Windowsでファイルリストを取得するコマンド


この記事はプロモーションを含みます。

Windows

ホーム > コマンドプロンプト・バッチファイル リファレンス

Windowsでファイル一覧を取得するコマンドですが、よく使う割にオプションの組み合わせを忘れてしまうことがあるので、ここに残しておきたいと思います。

使い勝手のいいコマンド dir編

サブディレクトリ配下を含めたフルパスで取得

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドです。

dir /a-d /b /s "{ディレクトリパス}"
c:\workspace>dir /a-d /b /s "C:\workspace"
C:\workspace\20210101.log
C:\workspace\20210102.log
C:\workspace\20210103.log
C:\workspace\SampleFile.xlsx
C:\workspace\サンプルファイル.txt
C:\workspace\テストフォルダ\テストファイル.docx
C:\workspace\テストフォルダ\テストファイル.txt

サブディレクトリ配下を含めたフルパスで取得(ワイルドカード)

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドですが、
ワイルドカードを使用して、拡張子が「log」のファイルのみを取得します。

dir /a-d /b /s "{ディレクトリパス}\*.log"
c:\workspace>dir /a-d /b /s "C:\workspace\*.log"
C:\workspace\20210101.log
C:\workspace\20210102.log
C:\workspace\20210103.log
C:\workspace\テストフォルダ\20210201.log
C:\workspace\テストフォルダ\20210202.log
C:\workspace\テストフォルダ\20210203.log

dirコマンドのオプション

  • /a:a アーカイブのみ表示
  • /a:d ディレクトリ(フォルダ)のみ表示
  • /a:h 隠しファイルのみ表示
  • /a:r 読み取り専用ファイルのみ表示
  • /a:s システムファイルのみ表示
  • /a-a アーカイブ以外を表示
  • /a-d ディレクトリ以外を表示
  • /a-h 隠しファイル以外を表示
  • /a-r 読み取り専用ファイル以外を表示
  • /a-s システムファイル以外を表示
  • /b  ディレクトリとファイルのみ表示
  • /b  ファイルサイズを3桁ごとにカンマで区切って表示
  • /-c   ファイルサイズをカンマで区切らずに表示
  • /d  ファイル名のみで詰めて表示(縦並び)
  • /l   結果をすべて小文字で表示
  • /o:d 作成日時の古い順に表示
  • /o:e 拡張子のアルファベット昇順に表示
  • /o:g ディレクトリを先に表示
  • /o:n 名前のアルファベット昇順に表示
  • /o:s ファイルサイズが小さい順に表示
  • /o-d 作成日時の新しい順に表示
  • /o-e 拡張子のアルファベット降順に表示
  • /o-g ディレクトリを後に表示
  • /o-n 名前のアルファベット降順に表示
  • /o-s ファイルサイズが大きい順に表示
  • /p  結果が長い場合1ページずつ表示(任意のキーで次ページへ進む)
  • /q  ファイルの所有者情報を表示
  • /s  サブディレクトリも含め全てのファイルを表示
  • /w  ファイル名のみで詰めて表示(横並び)
  • /?   ヘルプの表示

使い勝手のいいコマンド where編

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドです。
また、dirコマンドと違い、ファイルサイズとタイムスタンプも取得することが可能です。

サブディレクトリ配下を含めたフルパスで取得

where /r {ディレクトリパス} * /t
c:\workspace>where /r .\テストフォルダ * /t
         3   2022/03/06      17:48:57  c:\workspace\テストフォルダ\20210201.log
         7   2022/03/06      17:49:05  c:\workspace\テストフォルダ\20210202.log
         0   2021/09/25       0:25:18  c:\workspace\テストフォルダ\20210203.log
     11556   2022/03/06      17:49:21  c:\workspace\テストフォルダ\フォルダ1\テストファイル.docx
         0   2021/09/25       0:24:19  c:\workspace\テストフォルダ\フォルダ1\テストファイル.txt

サブディレクトリ配下を含めたフルパスで取得(ワイルドカード)

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドですが、
ワイルドカードを使用して、拡張子が「log」のファイルのみを取得します。

where /r {ディレクトリパス} *.log /t
c:\workspace>where /r .\テストフォルダ *.log /t
         3   2022/03/06      17:48:57  c:\workspace\テストフォルダ\20210201.log
         7   2022/03/06      17:49:05  c:\workspace\テストフォルダ\20210202.log
         0   2021/09/25       0:25:18  c:\workspace\テストフォルダ\20210203.log

whereコマンドのオプション

  • /f   一致したファイル名をダブルクォーテーションで囲って表示
  • /r   指定したディレクトリから再帰的に検索を行う
  • /q   ファイルの一覧は表示せずに終了コードのみを返す
  • /t   ファイルサイズと最終更新日を表示
  • /?   ヘルプの表示

for文を使って取得する

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドです。
また、dirコマンドと違い、ファイルサイズとタイムスタンプも取得することが可能です。
ここでは、取得結果をカンマ区切りで表示してみます。

サブディレクトリ配下を含めたフルパスで取得

for /R "{ディレクトリパス}" %F in (*) do @echo %~fF,%~zF,%~tF
C:\workspace>for /R ".\テストフォルダ" %F in (*) do @echo %~fF,%~zF,%~tF
C:\workspace\テストフォルダ\20210201.log,3,2022/03/06 17:48
C:\workspace\テストフォルダ\20210202.log,7,2022/03/06 17:49
C:\workspace\テストフォルダ\20210203.log,0,2021/09/25 00:25
C:\workspace\テストフォルダ\フォルダ1\テストファイル.docx,11556,2022/03/06 17:49
C:\workspace\テストフォルダ\フォルダ1\テストファイル.txt,0,2021/09/25 00:24

for文でファイルリストを取得する際の各項目ごとの記述例です。

%~fF:ファイルのフルパス
%~zF:ファイルサイズ
%~tF:ファイルの最終更新日時

サブディレクトリ配下を含めたフルパスで取得(ワイルドカード)

指定したディレクトリ配下のファイルリストをフルパス形式で取得するコマンドですが、
ワイルドカードを使用して、拡張子が「log」のファイルのみを取得します。

for /R "{ディレクトリパス}" %F in (*.log) do @echo %~fF,%~zF,%~tF
C:\workspace>for /R ".\テストフォルダ" %F in (*.log) do @echo %~fF,%~zF,%~tF
C:\workspace\テストフォルダ\20210201.log,3,2022/03/06 17:48
C:\workspace\テストフォルダ\20210202.log,7,2022/03/06 17:49
C:\workspace\テストフォルダ\20210203.log,0,2021/09/25 00:25

記事は以上です。使い勝手の良いコマンドがあれば、随時更新したいと思います。

コメント

タイトルとURLをコピーしました