Board logo

标题: cmd 的参数顺序——微软的帮助害死人 [打印本页]

作者: Hanyeguxing     时间: 2010-3-18 14:46    标题: cmd 的参数顺序——微软的帮助害死人

以前一直看的是系统的帮制与支持中的说明:

Cmd启动命令解释器 Cmd.exe 的新实例。如果在不含参数的情况下使用,则 cmd 显示 Windows XP 的版本和版权信息。
语法
cmd [[{/c|/k}] [/s] [/q] [/d] [{/a|/u}] [/t:fg] [/e:{on|off}] [/f:{on|off}] [/v:{on|off}] string]


出了错误还挺纳闷。后来看了cmd /?的说明,才发现:

启动 Windows XP 命令解释程序一个新的实例

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]


这个时候才知道,原来命令必须跟在/c或/k的后面。
哎,微软的帮助真是让人无语了
在运行中分别运行以下命令,(同时带/q /k /v三个参数)返回信息如下:
cmd /v:on /k /q echo ok
返回错误信息:'/q'不是内部或外部命令,也不是可运行的程序或批处理文件。
说明:将 /k 后的 /q echo ok 当作命令处理。
cmd /v:on /q /k echo ok
运行正常
cmd /q /v:on /k echo ok
运行正常
cmd /q /k /v:on echo ok
返回错误信息:文件名、目录名或卷标语法不正确。
说明:将 /k 后的 /v:on echo ok 当作命令处理。
cmd /k /v:on /q echo ok
返回错误信息:文件名、目录名或卷标语法不正确。
说明:将 /k 后的 /v:on /q echo ok 当作命令处理。
cmd /k /q /v:on echo ok
返回错误信息:'/q'不是内部或外部命令,也不是可运行的程序或批处理文件。
说明:将 /k 后的 /q /v:on echo ok 当作命令处理。

[ Last edited by Hanyeguxing on 2010-3-18 at 15:35 ]
作者: HAT     时间: 2010-3-18 14:55
有些命令必须是开关在前、参数在后,有些命令必须是开关在后、参数在前,有些命令开关、参数的位置可以随便调整。
作者: jarry0932     时间: 2010-3-19 09:02
你看cmd帮助里面这句: [[/S] [/C | /K] string],注意最外层有一个中括号,而且/c与/k中间有个“或者”,说明string是它的必要项,就像taskkill /im,/pid一样。粗心啊
作者: jarry0932     时间: 2010-3-19 09:02
你看cmd帮助里面这句: [[/S] [/C | /K] string],注意最外层有一个中括号,而且/c与/k中间有个“或者”,说明string是它的必要项,就像taskkill /im,/pid一样。粗心啊
作者: jarry0932     时间: 2010-3-19 09:05
晕,卡了一下,手一抖,发了两次…
作者: Hanyeguxing     时间: 2010-3-19 12:50
俺可是严格按着 hh C:\WINDOWS\Help\ntcmds.chm::/cmd.htm 中规定的 cmd 的语法去写的,嘿嘿,怎么能叫粗心捏?