Как использовать шаблоны именования Nant/Ant?

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

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

4 ответа

Решение

Правила таковы:

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

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

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

  1. bar.txt
  2. SRC /bar.c
  3. SRC /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

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

  • src** соответствует 2, 3 и 4
  • **.c соответствует 2, 3 и 4
  • **ar.* соответствует 1 и 2
  • **/bartest.c/** соответствует 4
  • src/ba?.c/** соответствует 2 и 3

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

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

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

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

Другие вопросы по тегам