it-swarm.cn

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

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

有人可以提供命名模式的权威指南吗?

88
berko

规则是:

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

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

假设你有这些文件:

  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
217
benzado

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

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

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

4
Aditya Kumar Shrivastava

查看 Nant参考 。文件集模式是:

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

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

3
Andy Whitfield