某些符号不影响cmd命令,而其他符号则影响

时间:2013-08-15 13:39:18

标签: windows command-line batch-file cmd

我注意到cmd似乎接受了命令末尾的一些字符。例如,所有以下功能都正确:

cls.
cls;
cls(
cls\
cls+
cls=
cls\"whatever"
cls\$
cls\#

而这些不是:

cls'
cls$
cls)
cls-
cls#
cls\/

有人知道为什么会这样吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这取决于批处理解析器。

;,=是一般批处理分隔符,因此您可以将它们附加/添加到大多数命令中而不会生效。

;,,=  ,=; echo hello
;,cls,;,,

.点可以附加到大多数命令,因为解析器将尝试查找名为cls(不带扩展名)cls.exe cls.bat的文件,以及何时没有找到任何东西然后它需要内部命令。

开始括号也是解析器无误删除的特殊字符。

\反斜杠用作路径分隔符,因此有时它可以工作,但有时甚至可以更改命令。

cls\..\..\..\windows\system32\calc.exe