Wie kann ich Nant / Ant Namensmuster verwenden?
Frage
Ich muß zugeben, dass ich immer die syntaktischen intracacies des Namensmusters für Nant vergessen (zB. In diesen Dateigruppen verwendet). Der Doppelstern / Einzel Sternchen Zeug scheint in meinem Kopf sehr getrost vergessen zu sein.
Kann jemand ein definitiven Leitfaden für die Namensmuster zur Verfügung stellen?
Lösung
Die Regeln sind:
- ein einzelner Stern (*) entspricht null oder mehr Zeichen in einem Pfadnamen
- ein Doppelstern (**) entspricht null oder mehr Zeichen über Verzeichnisebene
- ein Fragezeichen (?) Entspricht genau ein Zeichen in einem Pfadnamen
Ein weiterer Weg, um darüber nachzudenken, ist Doppelstern (**) Spiele Slash (/) aber einzelner Stern (*) nicht.
Angenommen, Sie haben die Dateien:
- bar.txt
- src / bar.c
- src / baz.c
- src / test / bartest.c
Dann werden die Muster:
-
*.c
paßt nichts (es gibt keine .c-Dateien im aktuellen Verzeichnis) -
src/*.c
Spiele 2 und 3 -
*/*.c
Spiele 2 und 3 (da * nur Spiele eine Ebene) -
**/*.c
Spiele 2, 3 und 4 (weil ** eine beliebige Anzahl von Ebenen) -
bar.*
Spiele 1 -
**/bar.*
Spiele 1 und 2 -
**/bar*.*
Spiele 1, 2 und 4 -
src/ba?.c
Spiele 2 und 3
Andere Tipps
Hier ein paar zusätzlichen Muster Spiele, die aus der Dokumentation nicht so offensichtlich sind. Getestet mit NAnt für die Beispieldateien in benzado Antwort:
-
src**
Spiele 2, 3 und 4 -
**.c
Spiele 2, 3 und 4 -
**ar.*
Spiele 1 und 2 -
**/bartest.c/**
Spiele 4 -
src/ba?.c/**
Spiele 2 und 3
Doppel Sternchen (**
) mit den Ordner-Namen zugeordnet passende, während einzelne Symbole Stern (* = multi characters
) sowie die Fragezeichen (? = single character
) verwendet, um die Datei-Namen entsprechen.
Schauen Sie sich die Nant Referenz . Die fileset Muster sind:
‚*‘ entspricht null oder mehr Zeichen, z.B. * .Cs
'?' entspricht ein Zeichen, z.B. ? CS-
Und ‚**‘ entspricht einen Verzeichnisbaum z.B. src / ** / *. cs alle cs-Dateien in jedem Unterverzeichnis src finden.