Cmd.exe更加复杂强大的命令行参数
cmd[/a |/u][/q][/d][/e:on |/e:off][/f:on |/f:off][/v:on |/v:off][/s][/c |/k]string]
/K执行由字符串指定的命令,但保留它;
/S在/C或/K后修改字符串处理;
/Q关闭响应;
/D从注册表中停用AutoRun命令;
/A将命令输出到内部管道或文件ANSI
/U将命令输出到内部管道或文件设为Unicode。
/T:fg设置前景色/背景色(详见Color/?);
/E:ON以启用命令扩展;
/E:OFF禁用命令扩展;
/F:ON启用文件和目录名完成字符;
/F:OFF禁用文件和目录名结束字符;
/V:ON开始延迟以C作为分隔符的环境变量的扩展。
/V:OFF禁用延迟环境扩展。
请注意,如果字符串有引号,您可以接受由命令分隔符“&&”分隔的多个命令。出于兼容性原因,/X与/E:ON相同,/Y与/E:OFF相同,/R与/c相同,忽略任何其他命令选项。
如果指定了/C或/K,命令行选项之后的其余部分将被视为命令行。在这种情况下,引号字符(")将按以下逻辑处理:
(1)如果满足以下所有条件,将保留命令行上的引号字符:
没有/S命令选项;
两个完整的引号字符;
两个引号之间没有特殊字符。特殊字符是下列字符之一:()@ |;
两个引号之间至少有一个空白色字符;
两个引号之间至少有一个可执行文件名称。
(2)否则,老方法是看第一个字符是否是引号字符。如果是,则丢弃开始字符并删除命令行上的最后一个引号字符,并保留最后一个引号字符之后的文本。如果命令行上没有指定/D,当CMD.EXE启动时,它将查找以下REG_SZ/REG_EXPAND_SZ注册表变量。如果其中一个或两个都存在,这两个变量将首先执行。
0条评论