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

StackOverflow https://stackoverflow.com/questions/69835

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

  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 для примеров файлов в ответе бензадо:

  • src**                      матчи 2, 3 и 4
  • **.c                        совпадения 2, 3 и 4
  • **ar.*                    совпадения 1 и 2
  • **/bartest.c/**  соответствует 4
  • src/ba?.c/**        матчи 2 и 3

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

Посмотрите на Ссылка на Nant.Шаблоны набора файлов следующие:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top