Windows 命令提示符中的目录搜索显示不正确的输出

Windows 命令提示符中的目录搜索显示不正确的输出

我搜索了以下内容并得到了准确的输出(文件夹名称已更改)

C:\temp>dir *950*.pdf /s
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\e\h\d\20100809

08/08/2010  10:54 PM         1,632,434 09_08_2010_004.pdf
08/08/2010  10:54 PM         1,368,895 09_08_2010_003.pdf
08/08/2010  10:54 PM         2,111,360 09_08_2010_005.pdf
               3 File(s)      5,112,689 bytes

我不明白为什么”950“正在与这 3 个文件进行匹配...!

編輯1

这次我实际上将它移到了 c:\temp\ 并且它与其中一个匹配!

 C:\temp\20100809>dir *950*.pdf
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\20100809

08/08/2010  10:54 PM         2,111,360 09_08_2010_005.pdf

編輯2

@gravvity 的回答非常正确!

C:\temp\20100809>dir *950*.pdf /x
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\20100809

08/08/2010  10:54 PM         2,111,360 09507E~1.PDF 09_08_2010_005.pdf

答案1

dir /x

出于兼容性原因,Windows 生成8.3 名称FindFirstFile()对于创建的每个长文件名,并检查通配符匹配代码 (两个都原始名称和缩写名称。用于dir /x查看分配给每个文件的缩写名称。

通常自动生成的短名称看起来像090820~1.PDF090820~2.PDF,但也有例外

[...] 如果已经存在至少 4 个文件或文件夹,并且它们的短名称中有相同的前 6 个字符,则剥离的 LFN 将被截断为基本名称的前 2 个字母(如果基本名称只有 1 个字母,则为 1 个字母),后跟从未记录的文件名哈希值中派生出的 4 个十六进制数字,然后 [...]

移动同一分区内的文件不会改变其名称,仅会重新定位它们。


使用 NTFS 文件系统时,8.3 名称创建可以使用以下方法在系统范围内禁用:

fsutil behavior set disable8dot3

但这不会影响现存的名字。

答案2

我遇到了这个问题,并想使用 fsutil 来禁用系统范围内的短名称,但最终决定不这样做。相反,我发现你可以使用 fsutil.exe 来将文件与更好的短名称关联,例如:

fsutil.exe file setshortname 175002886.pdf ~1752886.pdf

您需要以管理员身份执行此操作。

相关内容