Поиск каталога в Windows Command Prompt показывает неправильный вывод

Я искал следующее, и это дало мне точный вывод (измененные имена папок)

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 файлов...!

Edit1

Я на самом деле переместил его в 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

Edit2

Ответ @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
2
задан 19.06.2012, 00:20

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

Однако это не будет влиять на существующие имена.

8
ответ дан 08.12.2019, 04:58

Теги

Похожие вопросы