Je dois admettre que j'ai toujours oublié les subtilités syntaxiques des modèles de nommage pour Nant (par exemple, ceux utilisés dans les ensembles de fichiers). Le truc astérisque double/astérisque simple semble être très oubliable dans mon esprit.
Quelqu'un peut-il fournir un guide définitif sur les modèles de dénomination?
Les règles sont les suivantes:
Une autre façon de penser est que la double étoile (**) correspond à la barre oblique (/) mais pas la simple étoile (*).
Disons que vous avez les fichiers:
Ensuite, les motifs:
*.c
Ne correspond à rien (il n'y a pas de fichiers .c dans le répertoire courant)src/*.c
Correspond à 2 et 3*/*.c
Correspond à 2 et 3 (car * ne correspond qu'à un seul niveau)**/*.c
Correspond à 2, 3 et 4 (car ** correspond à n'importe quel nombre de niveaux)bar.*
Correspond à 1**/bar.*
Correspond à 1 et 2**/bar*.*
correspond à 1, 2 et 4src/ba?.c
correspond à 2 et 3Voici quelques correspondances de motifs supplémentaires qui ne sont pas si évidentes dans la documentation. Testé en utilisant NAnt pour les fichiers d'exemple dans la réponse de benzado:
src**
Correspond à 2, 3 et 4**.c
Correspond à 2, 3 et 4**ar.*
Correspond à 1 et 2**/bartest.c/**
Correspond à 4src/ba?.c/**
Correspond à 2 et 3Double astérisque (**
) sont associés aux noms de dossier correspondants, tandis que les astérisques (* = multi characters
) ainsi que le point d'interrogation (? = single character
) sont utilisés pour faire correspondre les noms de fichiers.
Consultez le référence Nant . Les modèles d'ensemble de fichiers sont les suivants:
'*' correspond à zéro ou plusieurs caractères, par exemple * .cs
'?' correspond à un caractère, par ex. ? .cs
Et '**' correspond à une arborescence de répertoires, par exemple src/**/*. cs trouvera tous les fichiers cs dans n'importe quel sous-répertoire de src.