我不得不承认,我总是忘记了Nant命名模式的语法内在含义(例如,文件集中使用的那些)。 在我的脑海中,双星号/单星号的东西似乎很容易忘记。
有人可以提供有关命名模式的权威指南吗?
规则是:
-
单个星号(*)与路径名中的零个或多个字符匹配
-
双星号(**)在目录级别匹配零个或多个字符
-
问号(?)与路径名中的一个字符完全匹配
考虑它的另一种方法是双星(**)匹配斜杠(/),而单星(*)不匹配。
假设您有以下文件:
bar.txt
src / bar.c
src / baz.c
src / test / 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)用于匹配文件名称。
查看Nant参考。文件集模式为:
'*'匹配零个或多个字符,例如* .cs
'?'匹配一个字符,例如?.cs
并且'**'与目录树匹配,例如src / ** / *。cs将在src的任何子目录中找到所有cs文件。