batch - 通过目录和子目录运行命令

时间:2015-08-30 00:51:55

标签: batch-file ffmpeg

我正在写一个快速的小批量脚本,它将使用ffmpeg从短片段创建gif。

我无法弄清楚如何让它在任何子文件夹(及其中的电影)的for循环中运行ffmpeg命令。我试图使用-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 :)

1 个答案:

答案 0 :(得分:0)

假设您的代码适用于单个文件夹并且%ffmpeg%已被初始化,请更改

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

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