Windows短名称不匹配长名称

我使用前缀(即ABCD *)复制文件列表以匹配批处理脚本中的文件。 然而,一些似乎匹配的文件被留下,而其他不匹配的文件被抓住。

我跑了一个dir / X,发现一些文件的短名称与他们的长名称不匹配:

4/17/2015 02:04 PM 554 ABCDEF~1.TXT abcdefghijklmnopqrs.txt 4/17/2015 02:08 PM 123 ABCDEF~2.TXT 1234567890.txt 4/17/2015 03:18 PM 233 987654~1.TXT abcdefg123456.txt 

任何想法为什么这样的事情可能会发生,如何解决?

如果您的示例数据代表您的实际文件,则可以指定ABCDEFG*来解决此问题。

编辑

由于上述建议不是一个选项,您可以使用FSUTIL来删除所有的8.3名称。

该命令将分析当前目录( . )中的文件并显示更改,而不实际进行更改。

 fsutil 8dot3name strip /t . 

删除/t参数以实际删除8.3名称。

你也可以运行:

 fsutil 8dot3name strip 

看到所有的选项。

短和长文件名不需要匹配。 默认的算法在“NTFS如何生成简短的文件名”下记录 。 你也可以在维基百科找到它

您可以使用更改短文件名

 fsutil file setshortname longFileName shortFileName