ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

バッチファイルでファイル一覧の文字列を作成する

あるフォルダに含まれるファイルを列挙した文字列を作成するバッチファイル

@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使って書けばよかった。