複数のフォルダに入っている階層バラバラのファイルを一つのフォルダにまとめたい。
ファイル10個くらいなら手でやったんでも問題ないけどちょっとそれ以上になりそうなのでバッチでひとまず処理しようと思った。
同じファイル名があった場合は考慮していない。
ってdirでファイル名だけ出す方法もあるからそれで別のリスト作って重複してたらなんか考えるか。
@echo off
echo フォルダ内のファイルをすべてEXTRACTフォルダを作成してそこへ移動します。
rem 一時ファイルとして使うファイルが存在していたら削除
if exist d_list.txt del d_list.txt
if exist f_p_list.txt del f_p_list.txt
dir /a:d > d_list.txt
pause
for /f "tokens=1,2,3,4" %%a in ('findstr "" d_list.txt') do (
if "%%d" neq "." if "%%d" neq ".." dir /a:-d /b /s %%d >> f_p_list.txt
)
rem 移動先のフォルダが存在しなかったら作成する
if not exist EXTRACT mkdir EXTRACT
for /f %%a in (f_p_list.txt) do (
echo "%%a"をEXTRACTフォルダへ移動
move %%a ./EXTRACT
)
pause
exit /b
こんな感じ。
自分で分かれば良いという雑なメモです。


コメント