我在批处理文件中有一个复杂的 ffmpeg.exe 命令...我不确定如何正确地转义特殊字符:
ffmpeg.exe -f dshow -i video="Logitech HD Pro Webcam C920" -vframes 1 -pixel_format yuv420p -s 1920x1080 -hide_banner -loglevel panic -q:v 1 -y -vf "drawtext=expansion=strftime:fontfile='C\:\\Windows\\Fonts\\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]" c920.jpg
从命令提示符运行时效果很好,当我在批处理文件中运行它时,文本覆盖会显示“Yd M:p”而不是“Mon 2017-10-23 04:45:18PM”
如果我删除文本覆盖部分(如下),它就可以正常工作。
-vf "drawtext=expansion=strftime:fontfile='C\:\\Windows\\Fonts\\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]"
答案1
我不知道如何正确地转义特殊字符
您需要将%
s 加倍,并将每个单个替换%
为%%
:
该
%
字符对于命令行参数和参数具有特殊含义FOR
。要将百分号视为常规字符,请将其加倍。
来源句法- 转义符、分隔符和引号
进一步阅读
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 句法- 转义符、分隔符和引号