こちらも需要はほとんどないと思いますが、「親フォルダをドラッグ&ドロップし、複数ある子フォルダのうち、その中にある孫フォルダがいくつあるかによって分別する」ためのスクリプト例です。
あくまで個人的な作業に使用した備忘録です。要するに孫フォルダが2個あるものは「2」というフォルダにまとめて移動というような作業です。
- 親フォルダの直下に1、2、3、4の名前を持つフォルダが存在するか確認し、存在しなければ作成。
- 各子フォルダ内の孫フォルダの数を数える。
- 孫フォルダの数に応じて、対応するフォルダ(1、2、3、4)に子フォルダを移動。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
@echo off setlocal enabledelayedexpansion :: 親フォルダのパスを取得(ドラッグ&ドロップされたフォルダ) set "parentFolder=%~1" :: 必要なフォルダ(1, 2, 3, 4)が存在するか確認し、なければ作成 for /L %%i in (1,1,4) do ( if not exist "%parentFolder%\%%i" mkdir "%parentFolder%\%%i" ) :: 子フォルダを適切なフォルダに移動 for /D %%d in ("%parentFolder%\*") do ( set /a "count=0" for /D %%s in ("%%d\*") do ( set /a "count+=1" ) if !count! gtr 0 if !count! lss 5 ( echo 移動中: %%d -> %parentFolder%\!count! move "%%d" "%parentFolder%\!count!" ) ) echo 処理が完了しました。 pause |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
@echo off setlocal enabledelayedexpansion :: 親フォルダのパスを取得(ドラッグ&ドロップされたフォルダ) set "parentFolder=%~1" :: 「0」という名前のフォルダが親フォルダの直下に存在するか確認し、なければ作成 if not exist "%parentFolder%\0" mkdir "%parentFolder%\0" :: 子フォルダを適切なフォルダに移動(孫フォルダが存在しない場合のみ) for /D %%d in ("%parentFolder%\*") do ( set /a "count=0" for /D %%s in ("%%d\*") do ( set /a "count+=1" ) if !count! == 0 ( echo 移動中: %%d -> %parentFolder%\0 move "%%d" "%parentFolder%\0" ) ) echo 処理が完了しました。 pause |
一応batファイルも用意したので面倒な場合はこちらをどうぞ。
・ダウンロード(孫フォルダ1-4個を分類)
・ダウンロード(孫フォルダ0個を分類)