Referenz zu Dateiabgleichsmustern
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mustersyntax
Ein Muster ist eine Zeichenfolge oder Liste von durch Newline getrennten Zeichenfolgen. Datei- und Verzeichnisnamen werden mit Mustern verglichen, um sie in eine Aufgabe einzuschließen (oder manchmal auszuschließ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 exakte Übereinstimmungen verwendet. Was als "exakte" Übereinstimmung zählt, ist plattformabhängig: Beim Windows-Dateisystem wird die Groß-/Kleinschreibung nicht beachtet, sodass das Muster "ABC" mit einer Datei namens "abc" übereinstimmt. Bei Dateisystemen, bei denen die Groß-/Kleinschreibung beachtet wird, stimmen dieses Muster und der Name nicht überein.
Die folgenden Zeichen haben ein besonderes Verhalten.
*
entspricht null oder mehr Zeichen innerhalb eines Datei- oder Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele.?
entspricht jedem einzelnen Zeichen innerhalb eines Datei- oder Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele.[]
entspricht einem Satz oder Einem Zeichenbereich innerhalb eines Datei- oder Verzeichnisnamens. Weitere Informationen finden Sie unter Beispiele.**
rekursiver Wildcard. Entspricht z./hello/**/*
B. allen nachkommen von/hello
.
Erweiterte Globbing
?(hello|world)
- entsprichthello
oderworld
null oder einmal*(hello|world)
- Null oder mehr Vorkommen+(hello|world)
- Ein oder mehr Vorkommen@(hello|world)
- genau einmal!(hello|world)
- nichthello
oderworld
Beachten Sie, dass erweiterte Globs keine Verzeichnistrennzeichen umfassen können. Beispielsweise ist Folgendes nicht zulässig: +(hello/world|other)
.
Kommentare
Muster, die mit #
beginnen, werden als Kommentare behandelt.
Ausschließen von Mustern
Führen !
ä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 "verschachteltes" Muster bezeichnet.
Mehrfach !
wird die Bedeutung umgedreht. Weitere Informationen finden Sie unter Beispiele.
Sie müssen ein Includemuster definieren, bevor sie ausgeschlossen werden. Weitere Informationen finden Sie unter Beispiele.
Escapezeichen
Das Umschließen von Sonderzeichen in []
kann verwendet werden, um literale Globzeichen in einem Dateinamen zu escapen. Der Literaldateiname hello[a-z]
kann beispielsweise als hello[[]a-z]
Escapezeichen angegeben werden.
Schrägstrich
/
wird unter Linux und macOS als Pfadtrennzeichen verwendet.
Die meiste Zeit akzeptieren /
Windows-Agents .
Fälle, bei denen das Windows-Trennzeichen (\
) verwendet werden muss, werden dokumentiert.
Beispiele
Beispiele für grundlegende Muster
Sternchenbeispiele
Beispiel 1: Angesichts des Musters *Website.sln
und der Dateien:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Das Muster entspricht:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Beispiel 2: Angesichts des Musters *Website/*.proj
und der Pfade:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Das Muster entspricht:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Beispiele für Fragezeichen
Beispiel 1: Angesichts des Musters log?.log
und der Dateien:
log1.log
log2.log
log3.log
script.sh
Das Muster entspricht:
log1.log
log2.log
log3.log
Beispiel 2: Angesichts des Musters image.???
und der Dateien:
image.tiff
image.png
image.ico
Das Muster entspricht:
image.png
image.ico
Beispiele für Zeichensätze
Beispiel 1: Angesichts des Musters Sample[AC].dat
und der Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Das Muster entspricht:
SampleA.dat
SampleC.dat
Beispiel 2: Angesichts des Musters Sample[A-C].dat
und der Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Das Muster entspricht:
SampleA.dat
SampleB.dat
SampleC.dat
Beispiel 3: Angesichts des Musters Sample[A-CEG].dat
und der Dateien:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Das Muster entspricht:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Beispiele für rekursive Wildcards
Angesichts des Musters **/*.ext
und der Dateien:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Das Muster entspricht:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Beispiele für Ausschlussmuster
Aufgrund des Musters:
*
!*.xml
und Dateien.
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Das Muster entspricht:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Double ausschließen
Aufgrund des Musters:
*
!*.xml
!!Fabrikam.xml
und Dateien.
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Das Muster entspricht:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Ordner ausschließen
Aufgrund des Musters:
**
!sample/**
und Dateien.
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Das Muster entspricht:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml