CMD [/A|/U] [/Q] [/D] [/T:fg] [/E:ON|/E:OFF] [/F:ON|/F:OFF][/V:ON|/V:OFF] [[/S][/C|/K]string]
/A 使向管道或文件的内部命令输出成为ANSI
/U 使向管道或文件的内部命令输出成为Unicode
/Q 关闭回显
/D 禁止从注册表执行AutoRun命令(见下)
/T:fg 设置前台/背景颜色(详细信息见 COLOR /?)
/E:ON 启用命令扩展(见下)
/E:OFF 禁用命令扩展(见下)
/F:ON 启用文件和目录名完成字符(见下)
/F:OFF 禁用文件和目录名完成字符(见下)
/V:ON 使用!作为分隔符启用延迟的环境变量扩展。
惊叹号字符可在执行时间被用来代替一个环境变量的数值。
例如,/V:ON会允许!var!在执行时扩展变量var。var语法会在输入时扩展变量,这与在一个FOR循环内不同。
/V:OFF 禁用延迟的环境扩展。
/C 执行字符串指定的命令然后终止
/K 执行字符串指定的命令但保留
/S 修改 /C 或 /K 之后的字符串处理(见下)
注意,如果字符串加有引号,可以接受用命令分隔符 "&&"分隔多个命令。另外,由于兼容性原因,/X 与 /E:ON 相同,/Y 与 /E:OFF 相同,且 /R 与/C 相同。任何其他开关都将被忽略。
[[/S][/C|/K]string]
如果指定了 /C 或 /K,则会将该开关之后的命令行的剩余部分作为一个命令行处理,其中,会使用下列逻辑处理引号(")字符:
1. 如果符合下列所有条件,则会保留命令行上的引号字符:
- 不带 /S 开关
- 正好两个引号字符
- 在两个引号字符之间无任何特殊字符,特殊字符指下列字符: &<>()@^|
- 在两个引号字符之间至少有一个空格字符
- 在两个引号字符之间的字符串是某个可执行文件的名称。
2. 否则,老办法是看{dy}个字符是否是引号字符,如果是,则去掉首字符并删除命令行上{zh1}一个引号,保留{zh1}一个引号之后的所有文本。
[/D]
如果/D未在命令行上被指定,当CMD.EXE开始时,它会寻找以下REG_SZ/REG_EXPAND_SZ注册表变量。如果存在,这两个变量会先被执行。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
[/E:ON|/E:OFF]命令扩展
命令扩展是按默认值启用的。注册表设置位置(REG_DWORD:0x1或0x0):
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
优先权:SETLOCAL ENABLEEXTENSIONS或DISABLEEXTENSIONS参数(批处理) > 命令行开关 > 用户特定设置 > 机器设置有优先权。
命令扩展包括对下列命令所做的更改和/或添加:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (同时包括对外部命令调用所做的更改)
ASSOC
FTYPE
[/V:ON|/V:OFF]延迟环境变量扩展
延迟环境变量扩展不按默认值启用。注册表设置位置(REG_DWORD:0x1或0x0):
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
优先权:SETLOCAL ENABLEEXTENSIONS或DISABLEEXTENSIONS参数(批处理) > 命令行开关 > 用户特定设置 > 机器设置有优先权。
[/F:ON|/F:OFF]文件名完成
注册表设置位置:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
由一个控制字符的十六进制值作为一个特定参数:
0x4是Ctrl-D,0x6是Ctrl-F,0x20是space(停用注册表中的某个字符)
优先权:命令行开关 > 用户特定设置 > 机器设置。
如果完成是用 /F:ON 开关启用的,两个要使用的控制符是: 目录名完成用 Ctrl-D,文件名完成用 Ctrl-F。完成功能将路径字符串带到光标的左边,建立相符的路径列表,显示{dy}个相符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键跟控制字符同时按下,会倒着显示列表。如果在文件和目录名完成之间切换,会发生同样现象。两个控制字符之间的{wy}区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完成被用于内置式目录命令(CD、MD 或 RD),就会使用目录完成。用引号将相符路径括起来,完成代码可以正确处理含有空格或其他特殊字符的文件名。
需要引号的特殊字符是:
<space>
()[]{}^=;!'+,`~(&()