![为什么 CMD 提示 TAB 在以“!”开头的文件名上失败?](https://linux22.com/image/1424615/%E4%B8%BA%E4%BB%80%E4%B9%88%20CMD%20%E6%8F%90%E7%A4%BA%20TAB%20%E5%9C%A8%E4%BB%A5%E2%80%9C%EF%BC%81%E2%80%9D%E5%BC%80%E5%A4%B4%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%8A%E5%A4%B1%E8%B4%A5%EF%BC%9F.png)
为什么CMD提示TAB自动完成以“!”开头的文件名失败?
例如
按 TAB、ENTER,得到
更差:
给出
和
按下 TAB,只会发出哔声。
答案1
你需要引用!(我相信开头的引言就足够了)。直接来自help cmd
:
通过在匹配路径周围放置引号,完成代码可以正确处理包含空格或其他特殊字符的文件名。此外,如果您备份,然后从一行内调用完成,则调用完成时光标右侧的文本将被丢弃。
需要引号的特殊字符是:
<space>
&()[]{}^=;!'+,`~
我不知道具体原因(虽然大多数都是 cmd 特殊字符),但显然当不是引用,直到最后一个这样的字符(包括它)的所有内容都会被默默丢弃(因此扩展匹配每个文件)。