批处理中的%字面量用法
我有一个批处理文件,其中包含一个使用了输出模板的Python脚本,格式是Output template> %(NAME)s。当我运行这个批处理文件时,命令行(cmd)把这个%当成了变量,结果把它给忽略掉了。
youtube-dl.py -b -o %(uploader)s-%(title)s-%(id)s.%(ext)s
所以变成了
youtube-dl.py -b -o (uploader)s-(title)s-(id)s.(ext)s
我该怎么做才能让命令行不处理这个%,而是直接把它传给Python呢?
3 个回答
1
这里有个替代的建议,你不需要去处理那些你在命令行中遇到的“怪事”。你可以把普通的文本参数传递给你的脚本,然后在脚本里进行模板处理。
3
如果你不想让命令提示符(cmd.exe)把你的 %
符号当作特殊字符来处理,你需要在它前面加一个转义字符:
c:\> set qwert=55
c:\> echo %qwert%
55
c:\> echo ^%qwert^%
%qwert%
3
把 % 替换成 %%:
youtube-dl.py -b -o %%(uploader)s-%%(title)s-%%(id)s.%%(ext)s
(注意,在Windows命令行中,双引号的作用没有Unix上那么大。)