无法在批处理文件中调用 ffmpeg

无法在批处理文件中调用 ffmpeg

我使用 ffmpeg 在提示符下使用以下命令重新编码了许多视频文件:

for %F in ("..\*.*") DO ffmpeg -n -i "%F" -c:v libx265 -c:a copy "%~nF.mkv"

我创建了一个包含此命令的批处理文件,并将其放在我的配置文件路径中。但是当我运行它时,我得到以下信息:

M:\>ff.bat
The following usage of the path operator in batch-parameter
substitution is invalid: %~nF.mkv"

For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.

M:\>for F" -c:v libx265 -crf 28 -c:a copy "F" -c:v libx265 -crf 28 -c:a copy "%~nF.mkv"

可能是引号有问题?

答案1

可能是引号有问题?

不,这是个问题%。在命令行上使用单个%。在批处理文件中将其加倍%%

因此请使用以下命令:

for %%F in ("..\*.*") DO ffmpeg -n -i "%%F" -c:v libx265 -c:a copy "%%~nF.mkv"

如果您在命令行而不是批处理程序中使用该FOR命令,则只需使用一个百分号:%G而不是%%G

来源:For - 循环命令 - Windows CMD - SS64.com


进一步阅读

答案2

确切地说,您必须使用双百分号而不是单百分号。另外,请确保 ffmpeg 路径位于 %path% 变量中,否则您必须指定 ffmpeg 程序的完整路径……

相关内容