很长一段时间以来,我一直对cmd.exe的奇怪行为感到烦恼(至少是WinXP和Windows7)。类似的命令del *.txt
也会删除*.txt1
文件(“ .txt”之后的任意数量的字符都可以)。这是一个众所周知的错误还是什么?
很长一段时间以来,我一直对cmd.exe的奇怪行为感到烦恼(至少是WinXP和Windows7)。类似的命令del *.txt
也会删除*.txt1
文件(“ .txt”之后的任意数量的字符都可以)。这是一个众所周知的错误还是什么?
Answers:
这是偶尔遇到的有点知名吗?
有关行为的说明在此处,并附有可能的解决方法。
简介:它来自NTFS处理短文件名(8.3)的方式,以与无法处理“新手”长文件名的旧文件兼容。 dir /x
可以用来查看短文件名,如下所示:
C:\>dir /x *~*
...
02/25/2011 08:18 AM <DIR> DOCUME~1 Documents and Settings
05/28/2011 12:02 AM <DIR> PROGRA~1 Program Files
...
超过三个字符的扩展名将因其短文件名而被截断;所以.txt1
,.txtxtxtxt
,.txt_file
等,都成了.txt
。
扩展名中包含超过4个字母的文件(当然也适用其他规则)会得到一个短名称,例如,“ foo.txt1”的简称为“ foo〜1.txt”。DEL
(例如DIR
,可能还有大多数其他cmd.exe
内置命令)也将对短名称进行操作。有关相关主题的讨论,请参见此处:http : //blogs.msdn.com/b/oldnewthing/archive/2005/07/20/440918.aspx