• ベストアンサー

180個のファイルを50個づつのフォルダに bat

次のようなbatファイルが簡単に作れるようでしたら、ご提示ください。 難しいようでしたら、batファイルでは難しいよという回答をお願いします。 ・日付が名前になっているフォルダがあります。  フォルダ名は20241011や20241011_1や241011だったりします。 ・フォルダの中には例えば180個のファイルがあります。 ・180個のファイルを更新日の順で50個づつ新たなファイルに分けたい。 ・フォルダ名が241011の場合は、241011_1に50個のファイル、241011_2に50個のファイル、241011_3に50個、241011_4に30個としたい

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

こんな感じでしょうか。 フォルダー名に8桁日付tと6桁日付が混在するなら最初のforの括弧内を条件に合致するように変更。 新フォルダーは各フォルダー内に作るのか、横並びに作るのか不明なので、横並び前提ですので、中に作るならフォルダー名は %1_%N% じゃなくて %1\%1_%N% ですね。 ーーーーーーーーーーーーーーーーーーーーーーーーーー cd /d 日付のフォルダー群の親フォルダー for /d %%A in (20??????) do call :SUB1 %%A exit /b :SUB1 set N=1 set I=0 for %%B in (%1\*) do call :SUB2 %1 %%B exit /b :SUB2 rem %1 がフォルダー名、%2 がファイル名 set /a I+=1 if %I% GTR 50 set /a I=1,N+=1 if not exist %1_%N% md %1_%N% move %2 %1_%N% exit /b

gennya
質問者

お礼

回答ありがとうございます。 期待通りに動きました。

Powered by GRATICA

関連するQ&A