Краткое имя 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