我使用 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 程序的完整路径……