¿Cómo uso los patrones de nomenclatura Nant/Ant?
(4)
Aquí hay algunas coincidencias de patrones extra que no son tan obvias en la documentación. Probado usando NAnt para los archivos de ejemplo en la respuesta de benzado:
-
src**coincide con 2, 3 y 4 -
**.ccoincide con 2, 3 y 4 -
**ar.*coincide con 1 y 2 -
**/bartest.c/**coincide 4 -
src/ba?.c/**coincide con 2 y 3
Tengo que admitir que siempre olvidé las intracaias sintácticas de los patrones de nomenclatura para Nant (por ejemplo, los que se usan en los conjuntos de archivos). El doble asterisco / asterisco simple parece ser muy olvidable en mi mente.
¿Puede alguien proporcionar una guía definitiva para los patrones de nombres?
Las reglas son:
- una sola estrella (*) coincide con cero o más caracteres dentro de un nombre de ruta
- una estrella doble (**) coincide con cero o más caracteres en los niveles de directorio
- un signo de interrogación (?) coincide exactamente con un carácter dentro de un nombre de ruta
Otra forma de pensar es doble estrella (**) coincide con barra inclinada (/), pero la estrella simple (*) no.
Digamos que tienes los archivos:
- bar.txt
- src / bar.c
- src / baz.c
- src / test / bartest.c
Entonces los patrones:
-
*.cno coincide con nada (no hay archivos .c en el directorio actual) -
src/*.ccoincide con 2 y 3 -
*/*.ccoincide con 2 y 3 (porque * solo coincide con un nivel) -
**/*.ccoincide con 2, 3 y 4 (porque ** coincide con cualquier cantidad de niveles) -
bar.*coincide con 1 -
**/bar.*coincide con 1 y 2 -
**/bar*.*coincide con 1, 2 y 4 -
src/ba?.ccoincide con 2 y 3
Los asteriscos dobles ( ** ) están asociados con la coincidencia de nombres de carpetas, mientras que los símbolos individuales asterisco ( * = multi characters ), así como el signo de interrogación ( ? = single character ) se utilizan para coincidir con los nombres de archivo.
Mira la referencia de Nant . Los patrones del conjunto de archivos son:
''*'' coincide con cero o más caracteres, p. ej. * .cs
''?'' coincide con un personaje, por ejemplo? .cs
Y ''**'' coincide con un árbol de directorios, por ejemplo, src / ** / *. Cs encontrará todos los archivos cs en cualquier subdirectorio de src.