Comment utiliser les modèles de dénomination Nant / Ant?

Je dois admettre que j’ai toujours oublié les intracacités syntaxiques des modèles de nommage pour Nant (par exemple, ceux utilisés dans les ensembles de fichiers). Le double astérisque / 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 seule écanvas (*) correspond à zéro ou plusieurs caractères dans un nom de chemin
  • une écanvas double (**) correspond à zéro ou plusieurs caractères à travers les niveaux de répertoire
  • un point d’interrogation (?) correspond exactement à un caractère dans un nom de chemin

Une autre façon de penser à cela est la double écanvas (**) qui correspond à la barre oblique (/), mais pas l’écanvas simple (*).

Disons que vous avez les fichiers:

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

Puis les motifs:

  • *.c ne correspond à rien (il n’y a pas de fichiers .c dans le répertoire actuel)
  • src/*.c correspondances 2 et 3
  • */*.c correspond à 2 et 3 (car * ne correspond qu’à un niveau)
  • **/*.c correspondances 2, 3 et 4 (car ** correspond à un nombre quelconque de niveaux)
  • bar.* correspond à 1
  • **/bar.* allumettes 1 et 2
  • **/bar*.* correspondances 1, 2 et 4
  • src/ba?.c matches 2 et 3

Voici quelques correspondances supplémentaires qui ne sont pas évidentes dans la documentation. Testé avec NAnt pour les fichiers d’exemple dans la réponse de benzado:

  • src** matches 2, 3 et 4
  • **.c correspondances 2, 3 et 4
  • **ar.* matches 1 et 2
  • **/bartest.c/** correspond à 4
  • src/ba?.c/** correspond 2 et 3

Découvrez la référence Nant . Les modèles de groupe de fichiers sont les suivants:

‘*’ correspond à zéro ou plusieurs caractères, par exemple * .cs
‘?’ correspond à un caractère, par exemple?

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.

Des astérisques doubles ( ** ) sont associés à la correspondance des noms de dossier, tandis que les symboles simples astérisque ( * = multi characters ) ainsi que le point d’interrogation ( ? = single character ) sont utilisés pour correspondre aux noms de fichiers.