Односимвольный подстановочный знак Windows возвращается больше, чем ожидалось

Я пытаюсь сделать список каталогов файлов с именами файлов, состоящими из 8 символов, сопровождаемых периодом и расширением файла в командном процессоре Windows. Подстановочный шаблон, который я использую,"????????.TIF". Это возвращает ВСЕ имена файлов с ".TIF" расширением, независимо от длины преддополнительной части имени файла. Пример:

dir A*.TIF

Возвраты ABCDEFGH.TIF и ABCDEFGHIJ.TIF

dir????????.TIF

Также возвраты оба файла. Я ожидал бы, что только первый будет возвращен, так как это - единственный из двух, который соответствует шаблону (8 отдельных символов, сопровождаемых ".TIF".), Каково объяснение этого поведения?

Заранее спасибо за любые ответы.

3
задан 21.10.2013, 15:36

3 ответа

Я думаю, что проблема - это ABCDEFGHIJ.TIF имеет краткое название чего-то как ABCDEF~1.TIF и это подбирается Вашим шаблоном.

Если Вы используете DIR /X Вы будете видеть краткие названия - т.е. 8,3 имен файла - всех Ваших файлов.

Вы могли попробовать что-то вроде этого:

DIR /B | FINDSTR /R /I "^........\.TIF"

Это использует FINDSTR в режиме регулярного выражения для обеспечения точно 8 символов перед .TIF. Поскольку больше справки на FINDSTR входит FINDSTR /? в командной строке.

7
ответ дан 07.12.2019, 23:09

? средства соответствуют любому отдельному символу. Путем выполнения a dir ????????.TIF Вы говорите, возвращают любые файлы, которые имеют 8 символов и a .tif расширение, в то время как dir A*.tif средства возвращают любые файлы, которые запускаются с A или и имеют .tif как расширение

0
ответ дан 07.12.2019, 23:09

Если Вы хотите исправить это, открыть поднятую командную строку и тип:

fsutil 8dot3name set 1

Существующие файлы все еще покажут проблему, пока Вы не сняли изоляцию с короткого имени файла. Новые файлы, которые Вы копируете/создаете, не будут иметь проблемы. Если Вам нужно к массовым коротким именам файлов полосы, можно использовать:

fsutil 8dot3name strip /s <directory>

Проблема, кажется, происходит от Windows 7 с помощью короткого имени файла для подстановочных знаков вместо длинного имени файла.

2
ответ дан 07.12.2019, 23:09

Теги

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