Windowsバッチでフォルダ配下のファイル一覧を取得する
-
タグ:
- #Windows
Windowsバッチ(*.bat)で、特定のフォルダの中に含まれるファイル名の一覧を取得する方法を、ここにメモしておきます。
Linuxコマンドで言うところのfindコマンドのような結果を取得できるようにしたいです。
サンプル
フォルダ階層
c:\sample\bat\file
├ file1.csv
├ file1.txt
├ file2.csv
├ file2.txt
├ file3.csv
├ file3.txt
└ sample1-1.bat
サンプルソース(sample1-1.bat)
@echo off
rem テキストファイルの一覧を取得
for /f "usebackq" %%i in (`dir c:\sample\bat\file\*.txt /B /S `) do (
echo %%i
)
rem [補足]
rem for /f "トークンオプション" %%a in (処理対象) do コマンド
rem トークンオプション
rem tokens:何番目の値を取得するか
rem delims:トークの区切り文字を指定
rem skip:先頭から指定した行数をスキップする
rem eol:指定した文字から始まる行を無視する
rem usebackq:バッククォート(`)で囲まれた文字列をコマンドとして実行する
rem 処理対象
rem 対象がファイル:ファイル名、パスを指定
rem 対象が文字列:ダブルクォーテーションで囲った文字か、変数を%で囲って指定
rem dirオプショ
rem /B: フォルダやファイル以外の文字を非表示
rem /S: ファイルやディレクトリも含めて表示する
結果
c:\sample\bat\file>sample1-1.bat
c:\sample\bat\file\file1.txt
c:\sample\bat\file\file2.txt
c:\sample\bat\file\file3.txt
以上です。
投稿日:2020-07-21
更新日:2020-07-21