2015-08-30 16 views
0

Я пишу быстрый маленький пакетный скрипт, который будет использовать ffmpeg для создания gif из коротких фрагментов ролика.batch-run command через каталог и подкаталог

У меня возникли проблемы с выяснением того, как заставить его запускать команды ffmpeg в цикле for в любых подпапках (и фильмы внутри них). Я пытался использовать -r, но это, похоже, не работает. Я довольно новичок в этом, и я как-то пробился сквозь этот сценарий. Любая помощь будет принята с благодарностью

ECHO Movie Dir, please? 
SET /p movdir= 

IF EXIST "%movdir%" (
MKDIR "%movdir%\palgen" 
MKDIR "%movdir%\gif" 

FOR %%a in ("%movdir%\*.mov*") do (
"%ffmpeg%\ffmpeg" -i "%%a" -vf fps="%fps%",scale="%scale%":flags=lanczos,palettegen -y "%movdir%\palgen\%%~na.bmp" 
"%ffmpeg%\ffmpeg" -i "%%a" -i "%movdir%\palgen\%%~na.bmp" -lavfi fps="%fps%",scale="%scale%":flags=lanczos,paletteuse -y "%movdir%\gif\%%~na.gif" 
) 

) ELSE (
ECHO That Directory doesn't exist, try again 
GOTO Start 
) 

RD /s /q "%movdir%\palgen" 
ECHO All Done, bye :) 

ответ

0

Предполагая, что ваш код работает в одной папке и %ffmpeg% является initalised, изменить

FOR %%a in ("%movdir%\*.mov*") do (

в

FOR /r "%movdir%" %%a in ("*.mov") do (
+0

, что не похоже на работу, когда я запускаю биту, он мгновенно закрывается и ничего не создается. – user1901188

+0

Попробуйте код сейчас - я по ошибке ошибся в '/ d'. Файлpec также * .mov предназначен только для * .MOV-файлов – foxidrive

+0

фантастический! Спасибо за вашу помощь! – user1901188

Смежные вопросы