Debo admitir que siempre olvidé las intracacies sintácticas de los patrones de nomenclatura de Nant (por ejemplo, los que se usan en los conjuntos de archivos). El asunto del doble asterisco / asterisco simple parece ser muy olvidable en mi mente.
¿Alguien puede proporcionar una guía definitiva sobre los patrones de nombres?
Respuestas:
Las reglas son:
Otra forma de pensarlo es que la estrella doble (**) coincide con la barra inclinada (/), pero la estrella simple (*) no.
Digamos que tienes los archivos:
Luego los patrones:
*.c
no coincide con nada (no hay archivos .c en el directorio actual)src/*.c
coincidencias 2 y 3*/*.c
coincide con 2 y 3 (porque * solo coincide con un nivel)**/*.c
coincide con 2, 3 y 4 (porque ** coincide con cualquier número de niveles)bar.*
coincidencias 1**/bar.*
coincidencias 1 y 2**/bar*.*
coincide con 1, 2 y 4src/ba?.c
coincidencias 2 y 3fuente
**.c
coincidiría?bar.txt
es implícitamente./bar.txt
(.
significa el directorio actual). De manera que la lista es realmente./bar.txt
,./src/bar.c
, etc., y el./
se supone.Aquí hay algunas coincidencias de patrones adicionales que no son tan obvias en la documentación. Probado usando NAnt para los archivos de ejemplo en la respuesta de benzado:
src**
coincidencias 2, 3 y 4**.c
coincide con 2, 3 y 4**ar.*
coincidencias 1 y 2**/bartest.c/**
partidos 4src/ba?.c/**
coincidencias 2 y 3fuente
Los asteriscos dobles (
**
) están asociados con la coincidencia de los nombres de las carpetas, mientras que los símbolos individuales asterisco (* = multi characters
) y el signo de interrogación (? = single character
) se utilizan para hacer coincidir los nombres de los archivos.fuente
Consulte la referencia de Nant . Los patrones de conjunto de archivos son:
'*' coincide con cero o más caracteres, por ejemplo, * .cs
'?' coincide con un carácter, por ejemplo,? .cs
Y '**' coincide con un árbol de directorios, por ejemplo, src / ** / *. Cs encontrará todos los archivos cs en cualquier subdirectorio de src.
fuente