发现命令提示符一个诡异的 bug(win7 win10 都有)

有一天想列举一下目录下的 *.doc 文件,结果中却包含了 *.docx 文件。于是做了个测试,如图:
输入 dir *.txt,会把扩展名中含有 txt 的文件都显示出来(正常应该是只显示 *.txt 吧?)。

但是该 bug 貌似只对三个字母长度的扩展名有效,输入 dir *.7z 只会显示 “test.7z”,“test.7zx” 却不会显示。

上述测试是在 Win7 中,在 Win10中测试的结果更怪异:

在桌面上可以复现此 bug,在其他盘却不会。

aaa

同样两个文件,在 G 盘就不存在这问题。

bbbb

这到底咋回事??

谢谢,通配符的问题暂时理解了。但是为何在同一个命令在桌面和在其他盘下得出不同的结果?这是最不能理解的

正如上面给出的dir文档里说,通配符是受到8.3短文件名影响的。而windows缺省是对所有卷(磁盘)都打开这个功能的,但这个功能又的确是可以针对不同卷关闭的。
可以通过命令提示符(管理员)中命令
fsutil 8dot3name query [卷名,例如c: d: g: …]
查看各个卷上此功能的开关情况,当然也可以用fsutil 去开关这个功能(微软建议系统盘为了兼容性不要关闭此功能)。至于为啥你的G盘上关闭了,也许你的G盘是用其它分区工具做出来,或者转换过来,甚至就是某些应用某些操作的需要(例如WSL什么的),就不好说了。反正微软认为这不算Bug,而是Feature。

6 个赞

大神,受我一拜。用你给的命令看了看,只有 C 盘启用了这功能,其他盘都是关闭的。

我是去年9月重装的 win10,只动了 C 盘,其他盘也没用过别的分区工具,况且还有一块硬盘是全新加上去的,原因还真不好说。会不会这功能默认只对 C 盘开启?

不知道其他人的电脑都啥情况

我的电脑原本只有一个C区,后来用win10自带的磁盘工具分了个D出来,刚试了试上面的命令,两个分区都是:

卷状态为: 0 (8dot3 名称创建已启用)。
注册表状态为: 2 (按卷设置 - 默认值)。

点赞!学习了