Question

Je dois admettre que j'ai toujours oublié les intracies syntaxiques des modèles de nommage pour Nant (par exemple, ceux utilisés dans les ensembles de fichiers). Les trucs double astérisque / simple astérisque semblent très oubliables dans mon esprit.

Quelqu'un peut-il fournir un guide définitif sur les modèles de dénomination?

Était-ce utile?

La solution

Les règles sont les suivantes:

  • une étoile (*) correspond à zéro ou plusieurs caractères dans un nom de chemin
  • une étoile double (**) correspond à zéro ou plusieurs caractères sur plusieurs niveaux de répertoire
  • un point d'interrogation (?) correspond exactement à un caractère dans un nom de chemin

Une autre façon de penser est que les étoiles doubles (**) correspondent aux barres obliques (/) mais pas les étoiles (*).

Disons que vous avez les fichiers:

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

Ensuite, les motifs:

  • *. c & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ne correspond à rien (il n'y a pas de fichiers .c dans le répertoire en cours)
  • src / *. c correspond aux 2 et 3
  • * / *. c & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; correspond à 2 et 3 (car * ne correspond qu'à un niveau)
  • ** / *. c & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; correspond à 2, 3 et 4 (car ** correspond à un nombre quelconque de niveaux)
  • bar. * & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; correspond à 1
  • ** / bar. * correspond à 1 et 2
  • ** / bar *. * correspond à 1, 2 et 4
  • src / ba? .c correspond aux 2 et 3 & nbsp; & nbsp; & nbsp;

Autres conseils

Voici quelques correspondances de modèle supplémentaires qui ne sont pas si évidentes dans la documentation. Testé en utilisant NAnt pour les exemples de fichiers dans la réponse de benzado:

  • src ** & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; correspond aux critères 2, 3 et 4
  • **. c & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nb & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; correspond à 2, 3 et 4
  • ** ar. * & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; correspond aux critères 1 et 2
  • ** / bartest.c / ** & nbsp; correspond à 4
  • src / ba? .c / ** & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; correspond aux critères 2 et 3
Les

doubles astérisques ( ** ) sont associés aux noms de dossier correspondants, alors que les symboles simples portent un astérisque ( * = caractères multiples ), ainsi que le point d'interrogation ( ? = un seul caractère ) sont utilisés pour faire correspondre les noms de fichiers.

Consultez la référence Nant . Les modèles de fichiers sont:

'*' correspond à zéro ou plusieurs caractères, par exemple. * .cs
'?' correspond à un caractère, par exemple ? .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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top