Как использовать шаблоны имен Nant/Ant?
Я должен признать, что я всегда забывал синтаксические интракасии шаблонов именования для Nant (например, те, которые используются в наборах файлов). Двойная звездочка/одиночная звездочка кажется очень забываемой в моем сознании.
Может ли кто-нибудь дать окончательное руководство шаблонам именования?
Ответы
Ответ 1
Правила:
- одиночная звезда (*) соответствует нулю или нескольким символам в имени пути
- двойная звезда (**) соответствует нулю или нескольким символам на уровнях каталогов
- знак вопроса (?) соответствует точно одному символу в имени пути
Другой способ подумать об этом - двойная звезда (**) соответствует косой чертой (/), но одиночная звезда (*) не делает.
Скажем, у вас есть файлы:
- bar.txt
- ЦСИ /bar.c
- ЦСИ /baz.c
- SRC/тест/bartest.c
Затем шаблоны:
-
*.c
ничего не соответствует (в текущем каталоге нет файлов .c)
-
src/*.c
соответствует 2 и 3
-
*/*.c
соответствует числу 2 и 3
-
**/*.c
соответствует 2, 3 и 4 (потому что ** соответствует любому количеству уровней)
-
bar.*
соответствует 1
-
**/bar.*
соответствует 1 и 2
-
**/bar*.*
соответствует 1, 2 и 4
-
src/ba?.c
соответствует 2 и 3
Ответ 2
Вот несколько дополнительных шаблонов, которые не так очевидны из документации. Протестировано с использованием NAnt для файлов примеров в ответе benzado:
-
src**
, 3 и 4
-
**.c
соответствует 2, 3 и 4
-
**ar.*
li > -
**/bartest.c/**
соответствует 4
-
src/ba?.c/**
соответствует 2 и 3
Ответ 3
Ознакомьтесь с ссылкой Nant. Паттерны набора файлов:
'*' соответствует нулю или более символам, например. *.cs
'?' соответствует одному символу, например.?.cs
И '**' соответствует дереву каталогов, например. src/**/*. cs найдет все файлы cs в любом подкаталоге src.
Ответ 4
Двойные звездочки (**
) связаны с совпадением имен папок, тогда как одиночные символы звездочки (* = multi characters
), а также вопросительный знак (? = single character
) используются для сопоставления имен файлов.