如何使用Nant / Ant命名模式?

时间:2008-09-16 06:35:37

标签: ant nant

我必须承认,我总是忘记Nant命名模式的语法内部(例如文件集中使用的那些)。在我看来,双星号/单星号的东西似乎很难忘记。

有人可以提供命名模式的明确指南吗?

4 个答案:

答案 0 :(得分:215)

规则是:

  • 单个星号(*)匹配路径名称
  • 中的零个或多个字符
  • 双星(**)在目录级别匹配零个或多个字符
  • 问号(?)恰好匹配路径名中的一个字符

考虑它的另一种方法是双星(**)匹配斜线(/)但单星(*)不匹配。

假设你有文件:

  1. 跳回到bar.txt
  2. 的src / bar.c
  3. 的src / baz.c
  4. 的src /测试/ bartest.c
  5. 然后是模式:

    • *.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

答案 1 :(得分:14)

这里有一些额外的模式匹配,这些匹配在文档中并不那么明显。在benzado的答案中使用NAnt测试示例文件:

  • src**匹配2,3和4
  • **.c匹配2,3和4
  • **ar.*匹配1和2
  • **/bartest.c/**匹配4
  • src/ba?.c/**匹配2和3

答案 2 :(得分:4)

双星号(**)与文件夹名称匹配相关联,而单个符号星号(* = multi characters)以及问号(? = single character)用于匹配文件名。

答案 3 :(得分:3)

查看Nant reference。文件集模式是:

'*'匹配零个或多个字符,例如*的.cs
'?'匹配一个字符,例如?的.cs

并且'**'匹配目录树,例如src / ** / * .cs将在src的任何子目录中找到所有cs文件。