【问题标题】:batch - run command through directory and sub-directory批处理 - 通过目录和子目录运行命令
【发布时间】:2015-11-24 08:39:38
【问题描述】:

我正在编写一个快速的小批处理脚本,它将使用 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 :)

【问题讨论】:

    标签: batch-file ffmpeg


    【解决方案1】:

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

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

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

    【讨论】:

    • 这似乎不起作用,当我运行 bat 时它会立即关闭并且什么也没有创建
    • 立即尝试代码 - 我错误地留在了/d 开关中。文件规范也是 *.mov 仅针对 *.MOV 文件
    猜你喜欢
    • 2016-12-30
    • 1970-01-01
    • 2013-07-27
    • 2015-08-05
    • 2012-12-23
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多