Как в батнике создавать в папке подпапку и перекидывать туда каждые 10 созданных файлов?

Есть батник (см код ниже).
Он с помощью софта ffmpeg разрезает видео на кусочки.
Суть в том, что перед работой ffmpeg'a я создаю папку командной MD result_%%i и закидываю туда для каждого обрабатываемого файла ВСЕ результаты (видеофайлы) обработки ffmpeg таким образом: result_%%i/%%i%%03d.mp4

Вопрос: Как в папке создавать подпапку для каждых 10-ти получаемых кусочков и помещать их туда? Соответственно так в папке result_%%i будет лежать несколько подпапок.

Подпапка должна нумероваться например так result_1_%%i. Таким образом полный путь к любому файлу будет выглядеть вот так: result_%%i/result_1_%%i/%%i%%03d.mp4

Код:
@echo off
for %%i in (*.mov) do (
  MD result_%%i
  ffmpeg -i "%%i" -filter_complex "[0:v]boxblur=40,scale=1080x1920,setsar=1[bg];[0:v]scale=1080:1920:force_original_aspect_ratio=decrease[fg];[bg][fg]overlay=y=(H-h)/2" -c:v libx264 -profile:v main -level:v 3.0 -x264-params scenecut=0:open_gop=0:min-keyint=72:keyint=72 -c:a aac -preset slow -crf 23 -r 30 -sn -force_key_frames "expr: gte(t, n_forced * 0.5)" -f segment -segment_time 14.5 -reset_timestamps 1 result_%%i/%%i%%03d.mp4

)

pause
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
@MaxKozlov
После конвертации можно поперекидывать примерно на основе такого монстрика

@echo off

set idx=1
set subfolder=1
for %%f in (*. mp4) do (
  call :inc "%%f"
)
goto :EOF

:inc
echo %1 - %idx% - %subfolder%
set /a "idx+=1"
if .%idx% == .11 (
  set /a "subfolder+=1"
  set idx=1
)


где вместо echo %1 - %idx% - %subfolder% будет команда создания и переноса файликов в подпапочки
Указанный код.цикла надо поместить внутрь вашего цикла и запускать после каждого обработанного файла на папке с результатами. Ну и, конечно, передвавать в подпрограмму пути к папке для перемещения

Доводить до ума не очень хочется, по причине, озвученной в комментарии
А переписать эти ваши 10 строк на ps займет минимум времени
Ответ написан
Ваш ответ на вопрос

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

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