Как использовать шаблоны имен 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) используются для сопоставления имен файлов.