Понимание того, как Windows выполняет сопоставление с образцом в командной строке


2

У меня есть 500 файлов в каталоге, test1.txt для test500.txt

По ссылке Microsoft http://msdn.microsoft.com/en-us/library/ff469270.aspx я не совсем понял разницу между * и <

Следующая команда в командной строке выдает «Файл не найден»

dir "test5<"

Однако dir "test5<<"перечисляет все файлы test5 *.

В чем причина такого поведения. Я не смог найти ни одной статьи, которая лучше объясняет, как "<" будет себя вести.

[править 1]

Также, если нет расширений, т.е. файлов test1 - test500, "test5???"совпадает с «test5», «test50» и «test500».

Разве это не должно давать «файл не найден», так как их три?

Ответы:


2

<похоже на *, за исключением одного различия. <не совпадает с последним .в имени файла.

test5< ничего не соответствует, потому что не соответствует расширению файлов в каталоге.

test5<<совпадает с ними, потому что первое <соответствует именам файлов вплоть до .for для расширения файла, а второе <соответствует самому расширению файла.


это объясняет большое спасибо. Также, если нет расширений, "test5 ???" соответствует "test5", "test50" и "test500". Разве не должно выдаваться «файл не найден», так как их три?
SyncMaster

@SyncMaster Дело в том, что сайт, который вы разместили, объясняет алгоритм, который только определяет, является ли данный файл шаблоном. Это не полностью объясняет, как шаблон интерпретируется . ?вероятно, означает «ноль или один» символов в командной строке Windows. Объяснения на этом сайте могут вводить в заблуждение.
Der Hochstapler

0

В опубликованной вами статье обсуждаются алгоритмы , а не команды.

Операторы перенаправления< и >являются для командной строки.


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

1
@SyncMaster Я не уверен, как сказать это более ясно, это не работает таким образом
Keltari

На самом деле, это так, Келтари. Попытайся. Приготовьтесь к очередному cmdсюрпризу от Microsoft .
JdeBP

Ну, это ново для меня
Keltari
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.