Cmd.exe更加复杂强大的命令行参数
文章作者 100test 发表时间 2008:03:13 13:58:34
来源 100Test.Com百考试题网
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [ [/S] [/C | /K] string]
/C 执行字符串指定的命令然后中断.
/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注册表变量。如果其中一个或两个都存在,这两个变量会先被执行。