Ich muss zugeben, dass ich immer die syntaktischen Intracacies der Namensmuster für Nant vergessen habe (z. B. die in Dateigruppen verwendeten). Das Doppelsternchen / Einzelsternchen-Zeug scheint mir sehr unvergesslich zu sein.
Kann jemand eine endgültige Anleitung zu den Namensmustern geben?
Antworten:
Die Regeln sind:
Eine andere Möglichkeit, darüber nachzudenken, ist, dass Doppelstern (**) mit Schrägstrich (/) übereinstimmt, Einzelstern (*) jedoch nicht.
Angenommen, Sie haben die Dateien:
Dann die Muster:
*.c
stimmt mit nichts überein (es gibt keine .c-Dateien im aktuellen Verzeichnis)src/*.c
entspricht 2 und 3*/*.c
entspricht 2 und 3 (weil * nur einer Ebene entspricht)**/*.c
entspricht 2, 3 und 4 (weil ** mit einer beliebigen Anzahl von Ebenen übereinstimmt)bar.*
entspricht 1**/bar.*
entspricht 1 und 2**/bar*.*
entspricht 1, 2 und 4src/ba?.c
entspricht 2 und 3quelle
**.c
passen?bar.txt
ist die implizite./bar.txt
( dh.
das aktuelle Verzeichnis). Also diese Liste wirklich ist./bar.txt
,./src/bar.c
usw. , und das./
wird angenommen.Hier sind einige zusätzliche Musterübereinstimmungen, die aus der Dokumentation nicht so offensichtlich sind. Getestet mit NAnt für die Beispieldateien in Benzados Antwort:
src**
entspricht 2, 3 und 4**.c
entspricht 2, 3 und 4**ar.*
entspricht 1 und 2**/bartest.c/**
Streichhölzer 4src/ba?.c/**
entspricht 2 und 3quelle
Doppelte Sternchen (
**
) sind mit den übereinstimmenden Ordnernamen verknüpft, während einzelne Symbole asterisk (* = multi characters
) sowie das Fragezeichen (? = single character
) verwendet werden, um die Dateinamen abzugleichen.quelle
Überprüfen Sie die Nant-Referenz . Die Dateigruppenmuster sind:
'*' entspricht null oder mehr Zeichen, z. B. * .cs
'?' entspricht einem Zeichen, zB? .cs
Und '**' stimmt mit einem Verzeichnisbaum überein, z. B. src / ** / *. Cs findet alle cs-Dateien in einem beliebigen Unterverzeichnis von src.
quelle