Как использовать шаблоны именования Nant / Ant? - PullRequest
88 голосов
/ 16 сентября 2008

Я должен признать, что я всегда забывал синтаксические интракасы шаблонов именования для Нанта (например, те, которые используются в наборах файлов). Мне кажется, что двойная звездочка / одна звездочка очень запоминаема.

Может ли кто-нибудь предоставить исчерпывающее руководство по шаблонам именования?

Ответы [ 4 ]

215 голосов
/ 17 сентября 2008

Правила:

  • одна звезда (*) соответствует нулю или более символов в имени пути
  • двойная звезда (**) соответствует нулю или более символов на всех уровнях каталога
  • знак вопроса (?) Соответствует ровно одному символу в имени пути

Еще один способ думать об этом - двойная звезда (**) соответствует косой черте (/), а одиночная звезда (*) - нет.

Допустим, у вас есть файлы:

  1. bar.txt
  2. ЦСИ / bar.c
  3. ЦСИ / baz.c
  4. 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
14 голосов
/ 14 августа 2013

Вот несколько дополнительных совпадений с образцами, которые не так очевидны из документации Протестировано с использованием NAnt для файлов примеров в ответе бензадо:

  • src** соответствует 2, 3 и 4
  • **.c соответствует 2, 3 и 4
  • **ar.* соответствует 1 и 2
  • **/bartest.c/** соответствует 4
  • src/ba?.c/** соответствует 2 и 3
4 голосов
/ 11 января 2012

Двойные звездочки (**) связаны с сопоставлением имен папок, тогда как одинарные символы звездочка (* = multi characters), а также знак вопроса (? = single character) используются для сопоставления имен файлов.

3 голосов
/ 16 сентября 2008

Проверьте ссылку Nant . Шаблоны набора файлов:

'*' соответствует нулю или более символов, например, * .Cs
'?' соответствует одному символу, например ? .Cs

И '**' соответствует дереву каталогов, например src / ** / *. cs найдет все файлы cs в любом подкаталоге src.

...