Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Mustersyntax
Ein Muster ist eine Zeichenfolge oder Liste mit durch Newline getrennten Zeichenfolgen. Datei- und Verzeichnisnamen werden mit Mustern verglichen, die sie in eine Aufgabe einschließen (oder manchmal ausschließen). Sie können komplexes Verhalten aufbauen, indem Sie mehrere Muster stapeln. Eine vollständige Syntaxanleitung finden Sie unter fnmatch.
Zeichen abgleichen
Die meisten Zeichen werden als genaue Übereinstimmungen verwendet. Was als "genaue" Übereinstimmung zählt, ist plattformabhängig: Das Windows-Dateisystem ist ohne Groß-/Kleinschreibung, sodass das Muster "ABC" mit einer Datei namens "abc" übereinstimmt. Bei Dateisystemen mit Beachtung der Groß-/Kleinschreibung stimmt dieses Muster und der Name nicht überein.
Die folgenden Zeichen weisen ein spezielles Verhalten auf.
-
*entspricht null oder mehr Zeichen innerhalb einer Datei oder eines Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele. -
?entspricht jedem einzelnen Zeichen innerhalb einer Datei oder eines Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele. -
[]entspricht einem Satz oder Bereich von Zeichen innerhalb einer Datei oder eines Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele. -
**rekursiven Wildcard. Beispielsweise entspricht/hello/**/*allen Nachfolgern von/hello.
Erweiterte Globbing
-
?(hello|world)- Übereinstimmungenhellooder Nullzeiten oderworldeinmal -
*(hello|world)– Null oder mehr Vorkommen -
+(hello|world)– mindestens ein Vorkommen -
@(hello|world)- genau einmal -
!(hello|world)- nichthellooderworld
Hinweis
Erweiterte Globs können keine Verzeichnistrennzeichen umfassen. Ist z. B +(hello/world|other) . ungültig.
Kommentare
Muster, die mit # beginnen, werden als Kommentare behandelt.
Ausschließen von Mustern
Führende ! ändert die Bedeutung eines auszuschließenden Includemusters.
Sie können ein Muster einschließen, eine Teilmenge davon ausschließen und dann eine Teilmenge davon erneut einschließen: Dies wird als "interleaved"-Muster bezeichnet.
Mehrere ! kippt die Bedeutung. Weitere Informationen finden Sie unter Beispiele.
Sie müssen ein Includemuster definieren, bevor ein Ausschlussmuster festgelegt wird. Weitere Informationen finden Sie unter Beispiele.
Escapezeichen
Das Umbrechen von Sonderzeichen in [] kann verwendet werden, um Literal-Globzeichen in einem Dateinamen zu escapen. Der Literaldateiname hello[a-z] kann z. B. als hello[[]a-z]escapet werden.
Schrägstrich
/ wird als Pfadtrennzeichen unter Linux und macOS verwendet.
In den meisten Jahren akzeptieren Windows-Agents /.
Gelegenheiten, bei denen das Windows-Trennzeichen (\) verwendet werden muss, sind dokumentiert.
Beispiele
- Grundlegende Musterbeispiele
- Sternchenbeispiele
- Fragezeichenbeispiele
- Beispiele für Zeichensätze
- Rekursive Wildcardbeispiele
- Beispiele zum Ausschließen von Mustern
- Beispiele für doppeltes Ausschließen
- Beispiele zum Ausschließen von Ordnern
Grundlegende Musterbeispiele
Sternchenbeispiele
Beispiel 1: Aufgrund des Musters *Website.slnund der folgenden Dateien:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Das Muster würde mit folgendem Muster übereinstimmen:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Beispiel 2: Aufgrund des Musters *Website/*.proj und Pfade:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Das Muster würde mit folgendem Muster übereinstimmen:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Fragezeichenbeispiele
Beispiel 1: Aufgrund des Musters log?.logund der folgenden Dateien:
log1.log
log2.log
log3.log
script.sh
Das Muster würde mit folgendem Muster übereinstimmen:
log1.log
log2.log
log3.log
Beispiel 2: Aufgrund des Musters image.???und der folgenden Dateien:
image.tiff
image.png
image.ico
Das Muster würde mit folgendem Muster übereinstimmen:
image.png
image.ico
Beispiele für Zeichensätze
Beispiel 1: Aufgrund des Musters Sample[AC].datund der folgenden Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Das Muster würde mit folgendem Muster übereinstimmen:
SampleA.dat
SampleC.dat
Beispiel 2: Aufgrund des Musters Sample[A-C].datund der folgenden Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Das Muster würde mit folgendem Muster übereinstimmen:
SampleA.dat
SampleB.dat
SampleC.dat
Beispiel 3: Aufgrund des Musters Sample[A-CEG].datund der folgenden Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Das Muster würde mit folgendem Muster übereinstimmen:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Rekursive Wildcardbeispiele
Aufgrund des Musters **/*.extund der folgenden Dateien:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Das Muster würde mit folgendem Muster übereinstimmen:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Das folgende Beispiel wurde von Copilot generiert. Copilot wird von KI unterstützt, so dass Überraschungen und Fehler möglich sind. Weitere Informationen finden Sie in den häufig gestellten Fragen zur allgemeinen Verwendung von Copilot.
Das **/*.ext Glob-Muster ist ein leistungsfähiges rekursives Muster, das in vielen Dateisystemen und Tools (wie bash, , zsh, Python globusw.) verwendet wird, um alle Dateien abzugleichen, die im .ext aktuellen Verzeichnis und allen Unterverzeichnissen enden, unabhängig davon, wie tief geschachtelt.
Hier sind einige Beispielpfade, die übereinstimmen **/*.extwürden:
sample1/A.extsample1/B.extsample2/C.extsample2/subdir1/D.extsample2/subdir1/subdir2/E.extsample3/F.extsample3/subdir3/G.extsample3/subdir3/subdir4/H.ext
Der ** Teil bedeutet eine beliebige Anzahl von Verzeichnissen (einschließlich Null) und *.ext bedeutet, dass jede Datei endet .ext.
Beispiele zum Ausschließen von Mustern
Aufgrund des folgenden Musters und der folgenden Dateien:
*
!*.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Das Muster würde mit folgendem Muster übereinstimmen:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Beispiele für doppeltes Ausschließen
Aufgrund des folgenden Musters und der folgenden Dateien:
*
!*.xml
!!Fabrikam.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Das Muster würde mit folgendem Muster übereinstimmen:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Beispiele zum Ausschließen von Ordnern
Aufgrund des folgenden Musters und der folgenden Dateien:
**
!sample/**
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Das Muster würde mit folgendem Muster übereinstimmen:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml