我搜索了以下内容并得到了准确的输出(文件夹名称已更改)
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.PDF
等090820~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
您需要以管理员身份执行此操作。