rn.log

備忘録など

サブディレクトリ以下の特定の拡張子のファイルをコピーして一か所へまとめるWindowsバッチファイル(*.bat)

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%
  )
)