¿Cómo uso los patrones de nomenclatura Nant/Ant?




(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?


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
  • **.c coincide con 2, 3 y 4
  • **ar.* coincide con 1 y 2
  • **/bartest.c/** coincide 4
  • src/ba?.c/** coincide con 2 y 3

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:

  1. bar.txt
  2. src / bar.c
  3. src / baz.c
  4. src / test / bartest.c

Entonces los patrones:

  • *.c no coincide con nada (no hay archivos .c en el directorio actual)
  • src/*.c coincide con 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 cantidad de niveles)
  • bar.* coincide con 1
  • **/bar.* coincide con 1 y 2
  • **/bar*.* coincide con 1, 2 y 4
  • src/ba?.c coincide con 2 y 3

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.