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.