我不得不承认,我总是忘记了 Nant 命名模式的语法缺陷(例如,文件集中使用的那些)。在我看来,双星号/单星号的东西似乎很容易忘记。
有人可以提供命名模式的权威指南吗?
规则是:
另一种思考方式是双星 (**) 与斜杠 (/) 匹配,但单星 (*) 不匹配。
假设您有以下文件:
然后是模式:
*.c
不匹配(当前目录中没有 .c 文件)src/*.c
匹配 2 和 3*/*.c
匹配 2 和 3(因为 * 只匹配一个级别)**/*.c
匹配 2、3 和 4(因为 ** 匹配任意数量的级别)bar.*
匹配 1**/bar.*
匹配 1 和 2**/bar*.*
匹配 1、2 和 4src/ba?.c
匹配 2 和 3
这里有一些额外的模式匹配,这些匹配在文档中并不那么明显。使用 NAnt 对 benzado 回答中的示例文件进行了测试:
src**
匹配 2、3 和 4**.c
匹配 2、3 和 4**ar.*
匹配 1 和 2**/bartest.c/**
匹配 4src/ba?.c/**
匹配 2 和 3查看Nant 参考资料。文件集模式是:
'*' 匹配零个或多个字符,例如 *.cs
'?' 匹配一个字符,例如 ?.cs
'**' 匹配目录树,例如 src/**/*.cs 将在 src 的任何子目录中查找所有 cs 文件。
双星号 ( **
) 与文件夹名称匹配相关联,而单个符号星号 ( * = multi characters
) 以及问号 ( ? = single character
) 用于匹配文件名。