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

[スポンサーリンク]

サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]