Windowsバッチ(*.bat)で特定の拡張子のファイルをコピーする方法を調べて自分なりにまとめてみた。
以下のバッチを実行するとサブディレクトリ以下の*.csファイルがTMPフォルダ直下へコピーされる
SET DIST_DIR=TMP SET FILE_EXT=.cs mkdir %DIST_DIR% FOR /D /R %%D IN (*) DO ( FOR %%F IN (%%D\*) DO ( IF /I %%~xF==%FILE_EXT% copy %%F %DIST_DIR% ) )
IFの後にNOTを入れると*.csファイルを除いたファイルがコピーされるようになる
SET DIST_DIR=TMP SET FILE_EXT=.cs mkdir %DIST_DIR% FOR /D /R %%D IN (*) DO ( FOR %%F IN (%%D\*) DO ( IF /I NOT %%~xF==%FILE_EXT% copy %%F %DIST_DIR% ) )