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) - entspricht hello oder world null oder einmal
  • *(hello|world) - Null oder mehr Vorkommen
  • +(hello|world) - Ein oder mehr Vorkommen
  • @(hello|world) - genau einmal
  • !(hello|world) - nicht hello oder world

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