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

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:

  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

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

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.

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.