这个 .bat 使用变量执行 FFmpeg 命令有什么错误?

这个 .bat 使用变量执行 FFmpeg 命令有什么错误?

我想创建一个 .bat 文件来运行 FFmpeg 命令。它运行良好,直到我决定使用变量。

这里是

SET file=C:\[My Files\.01Movie\video879.mp4
SET folder=C:\[My Files\.01Movie\

ffmpeg -i "%file%" -vf "fps=1/60,scale=960:-2" "%folder%\out%04d.jpg"

当我使用绝对路径时,它按预期工作。这是工作

ffmpeg -i "C:\[My Files\.01Movie\video879.mp4" -vf "fps=1/60,scale=960:-2" "C:\[My Files\.01Movie\out%04d.jpg"

答案1

MSDos 并不真正理解“%folder%\out%04d.jpg”

因为它看到的是这个变量:%folder%\out% 而不是 %folder%。如果使用转义字符 ^ 来转义 %,它应该可以正常工作。

因此你的批处理文件变成:

ffmpeg -i "%file%" -vf "fps=1/60,scale=960:-2" "%folder%\out^%04d.jpg"

答案2

啊哈,看来我路径中的 ([) 是问题所在。原来我应该用 \ 来转义它

相关内容