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