質問: ディレクトリ内にある複数のファイルを条件別に他ディレクトリに移動させる バッチファイルを作成しております。 分岐条件として、あるテキストファイル内に拡張子の一覧が羅列されており、 その一覧の中に該当する拡張子を持っているファイルであればAフォルダへ、 該当しなければBフォルダへ移動させたいと考えております。 例> sample.txtの内容 .xls .pdf .doc .txt ... .. . . C:\Users\Desktop\フォルダ1\test.txt C:\Users\Desktop\フォルダ1\test.bat ↓ テキストファイルに.txtの記述はあるのでフォルダAへ ↓ テキストファイルに.batの記述はないのでフォルダBへ C:\Users\Desktop\フォルダA\test.txt C:\Users\Desktop\フォルダB\test.bat フォルダ1に含まれるファイルが大量にあり、拡張子も様々ですので、 拡張子別に振り分けが出来るバッチにしたいです。 良い記述方法はございますでしょうか。 お知恵をお貸し頂けると幸いです。
回答: こんな感じでできます。 ``` @echo off setlocal set TARGET_DIR=sample set EXT_LIST=sample.txt set FOLDER_A=FolderA set FOLDER_B=FolderB rem リストに書かれている拡張子に該当するファイルをフォルダーAに移動 for /F %%A in (%EXT_LIST%) do ( move %TARGET_DIR%\*%%A %FOLDER_A%\ ) rem それ以外のファイルをフォルダーBに移動 move %TARGET_DIR%\*.* %FOLDER_B%\ ``` 一応軽くテストして動くことは確認しました。環境変数への設定は適宜変えてください。