あるフォルダに含まれるファイルを列挙した文字列を作成するバッチファイル
@echo off @setlocal enabledelayedexpansion set FILE_LIST= for %%f in (.\test\*.txt) do ( set FILE_LIST=!FILE_LIST!%%f ) echo %FILE_LIST%
set FILE_LIST=!FILE_LIST!%%fの最後には1文字スペースが入っている。
例えば、フォルダ test に aaa.txt, bbb.txt, ccc.png, ddd.txt が入っていたときに実行すると結果は次のようになる
.\test\aaa.txt .\test\bbb.txt .\test\ddd.txt
最初、文字列を追加するところを、
set FILE_LIST=%FILE_LIST%%%f
と書いていたのだが、これだと最後に実行されたものしか設定されない。これに対処するには、遅延環境変数を使わなければならない。
qiita.com
これを知らなくてけっこう苦労した。
というか、最初からPython使って書けばよかった。