3

Файлы в папке:

a.j
ab.jp
abc.jpg
abcd.jpeg

Результаты команды dir :

Command       Result (Files shown)
----------    --------------------
dir ?.*       a.j
dir ??.*      a.j, ab.jp
dir ???.*     a.j, ab.jp, abc.jpg
dir ????.*    a.j, ab.jp, abc.jpg, abcd.jpeg

Так мы можем увидеть сингл ? это означает "0 или 1 буква".

Теперь больше результатов команды dir :

Command       Result (Files shown)
----------    --------------------
dir *.?       a.j
dir *.??      a.j, ab.jp
dir *.???     a.j, ab.jp, abc.jpg, abcd.jpeg --> What is this?!
dir *.????    a.j, ab.jp, abc.jpg, abcd.jpeg

В 3-й команде почему ??? показывает jpeg? Вы можете объяснить? Это ошибка в cmd?

3 ответа3

7

Это происходит потому, что три знака вопроса соответствуют расширению для короткой версии имени файла. использование

dir /x

показывать (и работать с) короткие версии имен файлов.

2

Относительно проблемы расширений длиннее трех символов: это связано с тем, как создаются короткие имена файлов. Вы можете решить эту проблему, установив Win95TruncatedExtensions в реестре:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"Win95TruncatedExtensions"=dword:00000000

Указывает, будут ли NTFS и FAT генерировать имена файлов для новых файлов с соглашением об именах 8.3.

Установка значения этой записи в 1 не изменяет существующие расширения имени файла, а также не меняет способ отображения или управления этими расширениями с помощью Find, File Manager или Windows Explorer. Однако это приводит к тому, что NTFS и FAT генерируют короткие имена для новых файлов и усекают третий символ расширений имени файла.

Значение по умолчанию 1

Но имейте в виду, что это повлияет только на вновь созданные или скопированные файлы.

(Вы можете скопировать все файлы на свой жесткий диск. Вы должны сделать этот параметр реестра одним из первых при установке системы Windows.)

1

В командной строке используется система коротких имен файлов. Это означает, что когда файл содержит более 8 символов перед точкой, первые 6 будут использоваться + ~ 1. То же самое касается, когда вы используете 4 или более символов за. Затем он будет использовать первые 3 символа расширения и будет называть файл по-другому (первые 6 + ~ 1). Таким образом, файл .jpeg рассматривается в командной строке как ??????~1.jpe и как таковой он будет соответствовать *.???

Используйте dir /x для просмотра файлов с коротким именем файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .