Краткое имя Windows не соответствует длинному имени

Я копирую список файлов, используя префикс (например, ABCD*), чтобы сопоставить файлы в пакетном скрипте. Тем не менее, некоторые файлы, которые кажутся совпадающими, остаются позади, в то время как другие файлы, которые не совпадают, извлекаются.

Я запустил 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

Любая идея, почему что-то подобное может произойти и как это решить?

2 ответа

Решение

Если ваши образцы данных представляют ваши фактические файлы, вы можете указать ABCDEFG* обойти эту проблему.

РЕДАКТИРОВАТЬ

Поскольку приведенное выше предложение не является вариантом, вы можете использовать FSUTIL удалить все 8.3 имен.

Эта команда проанализирует файлы в текущем каталоге (.) и отобразить изменения, фактически не внося их.

fsutil 8dot3name strip /t .

Удалить /t параметр для фактического удаления 8,3 имен.

Вы также можете запустить:

fsutil 8dot3name strip

чтобы увидеть все варианты.

Короткие и длинные имена файлов не обязательно должны совпадать. Алгоритм по умолчанию описан здесь в разделе "Как NTFS генерирует короткие имена файлов". Вы также можете найти его в википедии

Вы можете изменить краткое имя файла с помощью

fsutil file setshortname longFileName shortFileName
Другие вопросы по тегам