Windows 短名称与长名称不匹配

Windows Short name does not match long name

我正在使用前缀(即 ABCD*)复制文件列表以匹配批处理脚本中的文件。但是,一些看似匹配的文件被遗忘,而其他不匹配的文件则被抓取。

我 运行 a 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

知道为什么会发生这样的事情以及如何解决吗?

短文件名和长文件名不需要匹配。默认算法已记录 here under "How NTFS Generates Short File Names". You can also find it in the wikipedia

您可以使用

更改短文件名
fsutil file setshortname longFileName shortFileName

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

编辑

由于上述建议不可行,您可以使用 FSUTIL 删除所有 8.3 名称。

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

fsutil 8dot3name strip /t .

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

你也可以运行:

fsutil 8dot3name strip

查看所有选项。