Как из папки раскидать все файлы по подпапкам по 10 шт?

Есть папка, в ней много файлов .mp4 Как используя батник (не powershell) внутри папки создать много подпапок и раскидать по подпапкам эти файлы, чтоб в каждой подпапке было не более 10 файлов.

Естественно, что если в папке у нас будет не кратное кол-во .mp4 файлов то в последней подпапке будет закинуто меньше чем 10 файлов.

Данный скрипт делает это, но как указать чтоб скрипт работал с конкретной папкой , т.к. батник лежит рядом с этой главной папкой а не внутри неё?
@Echo Off
If /I Not "%__CD__%"=="%~dp0" PushD "%~dp0" 2>Nul||Exit/B
SetLocal EnableDelayedExpansion
Set "DirN=-1"

:Check_DirN
Set/A "DirN+=1"
If Exist "%DirN%" GoTo Check_DirN
Set "limit=10"
For %%A In (*.bat *.cmd *.mp4) Do (
    If Not Exist "%DirN%" MD "%DirN%"
    If /I Not "%%~nxA"=="%~nx0" RoboCopy . "%DirN%" "%%A" /MOV 1>NUL
    Set/A "limit-=1"
    If !limit! Lss 0 GoTo Check_DirN
)
Echo(Task Done!
Timeout -1 1>Nul
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
но как указать чтоб скрипт работал с конкретной папкой

Вам bat и cmd файлы то же надо раскидывать по каталогам?
...
set "dirname=./test"
...
For %%A In ("%dirname%/*.bat" "%dirname%/*.cmd" "%dirname%/*.mp4") Do (
...
    move /y "%dirname%/%%~A" "%DirN%"
...

Зачем вам robocopy? С переносом файлов вполне справится move.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы