同じフォルダ名を繰り返し使ったフォルダ構造を修正するバッチファイル

同じフォルダ名を繰り返し使ったフォルダ構造を修正するバッチファイル

自分メモ。家の曲データフォルダが気に食わない事になっていたので修正。

treeコマンドで確認すると

PS D:\ServerFolders\ミュージック\MP3 Albums> tree
フォルダー パスの一覧:  ボリューム XXXXX
ボリューム シリアル番号は XXXX-XXXX です
D:.
├─Diana Krall - Quiet Nights (2009)
│  └─Diana Krall - Quiet Nights (2009)
      ここにMP3ファイル多数

みたいな感じにフォルダの中にさらに同じフォルダが。これは気持ち悪い。自分のポリシーとして曲データは

アーティスト名 – アルバム名

としたい(だからiTunesのフォルダ命名も気に食わないのだけれど)。最初は手で直してたけどキリがなくなったのでバッチで処理したメモ。

ireco.bat

set LIBDIR=\ServerFolders\ミュージック\MP3 Albums
cd %LIBDIR%

:LOOP
for /f "delims=" %%a IN (dirlist.txt) DO CALL :MOVE "%%a"
GOTO END

:MOVE
cd %1
cd %1
IF ERRORLEVEL 1 ( cd %LIBDIR%
EXIT /B 0 )
MOVE *.* ..
cd ..
rmdir %1 /s /q
cd %LIBDIR%
EXIT /B 0

:END
ECHO End.

対象フォルダ(\ServerFolders\ミュージック\MP3 Albums)上で

dir /b /ad > dirlist.txt

でディレクトリのリストを作っておく。

あとはフォルダリストから1行づつ読み込み、1階層降りる。さらにもう1階層降りて、降りられたら中のファイルを上に上げて入れ子フォルダを消す。

それだけ。

せっかく動確とってから使ったので残しておきます。

コメントを残す