cmd.exe:“ del * .txt”也会删除* .txt1等[重复]


8

可能重复:
WinXP dir命令:3和4个字符扩展名相同吗?

很长一段时间以来,我一直对cmd.exe的奇怪行为感到烦恼(至少是WinXP和Windows7)。类似的命令del *.txt也会删除*.txt1文件(“ .txt”之后的任意数量的字符都可以)。这是一个众所周知的错误还是什么?

Answers:


8

这是偶尔遇到的有点知名吗?

有关行为的说明在此处,并附有可能的解决方法。

简介:它来自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



2

这将在FAT / VFAT文件系统上吗?如果是这样,您就会被用来表示不适合8.3模式的名称的骇客软件所咬住;有一个DIR选项可以向您显示错误的短名称,该短名称以实际文件名开头,但~在扩展名前有一个和数字,然后该扩展名的上限为3个字符。(示例: C:\Program Files通常转换为C:\PROGRA~1。)通配符可能会意外匹配这些名称。 这应该不会发生在NTFS或(我认为)上的网络共享。看来,除了DOS仍然没有死。


2

您可能可以使用Forfiles命令来解决

例如。

Forfiles  -s -m *.txt -c "cmd /C del /q @path"

仅匹配txt结尾。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.