Referens för filmatchningsmönster
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Mönstersyntax
Ett mönster är en sträng eller lista med nya, avgränsade strängar. Fil- och katalognamn jämförs med mönster som ska inkludera (eller ibland exkludera) dem i en uppgift. Du kan skapa komplexa beteenden genom att stapla flera mönster. En fullständig syntaxguide finns i fnmatch.
Matcha tecken
De flesta tecken används som exakta matchningar. Det som räknas som en "exakt" matchning är plattformsberoende: Windows-filsystemet är skiftlägeskänsligt, så mönstret "ABC" skulle matcha en fil med namnet "abc". På skiftlägeskänsliga filsystem matchar inte det mönstret och namnet.
Följande tecken har ett särskilt beteende.
-
*
matchar noll eller fler tecken i ett fil- eller katalognamn. Se exempel. -
?
matchar ett enskilt tecken i ett fil- eller katalognamn. Se exempel. -
[]
matchar en uppsättning eller ett intervall med tecken i ett fil- eller katalognamn. Se exempel. -
**
rekursiv jokertecken. Till exempel matchar/hello/**/*
alla underordnade/hello
.
Utökad globbning
-
?(hello|world)
– matcharhello
ellerworld
noll eller en gånger -
*(hello|world)
– noll eller fler förekomster -
+(hello|world)
– en eller flera förekomster -
@(hello|world)
- exakt en gång -
!(hello|world)
– intehello
ellerworld
Observera att utökade globs inte kan sträcka sig över katalogavgränsare. Till exempel är +(hello/world|other)
ogiltigt.
Kommentarer
Mönster som börjar med #
behandlas som kommentarer.
Exkludera mönster
Inledande !
ändrar innebörden av ett inkluderingsmönster som ska undantas.
Du kan inkludera ett mönster, exkludera en delmängd av det och sedan ta med en delmängd av det igen: detta kallas för ett "interfolierat" mönster.
Flera !
vänder innebörden. Se exempel.
Du måste definiera ett inkluderingsmönster innan ett exkluderingsmönster. Se exempel.
Fly
Omslutning av specialtecken i []
kan användas för att undkomma literala globtecken i ett filnamn. Till exempel kan det literala filnamnet hello[a-z]
undantagas som hello[[]a-z]
.
Snedstreck
/
används som sökvägsavgränsare i Linux och macOS.
För det mesta accepterar Windows-agenter /
.
Tillfällen då Windows-avgränsaren (\
) måste användas dokumenteras.
Exempel
Exempel på grundläggande mönster
Asteriskexempel
Exempel 1: Givet mönstret *Website.sln
och filer:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Mönstret skulle matcha:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Exempel 2: Med tanke på mönstret *Website/*.proj
och sökvägar:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Mönstret skulle matcha:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Exempel på frågetecken
Exempel 1: Givet mönstret log?.log
och filer:
log1.log
log2.log
log3.log
script.sh
Mönstret skulle matcha:
log1.log
log2.log
log3.log
Exempel 2: Givet mönstret image.???
och filer:
image.tiff
image.png
image.ico
Mönstret skulle matcha:
image.png
image.ico
Exempel på teckenuppsättning
Exempel 1: Givet mönstret Sample[AC].dat
och filer:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Mönstret skulle matcha:
SampleA.dat
SampleC.dat
Exempel 2: Givet mönstret Sample[A-C].dat
och filer:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Mönstret skulle matcha:
SampleA.dat
SampleB.dat
SampleC.dat
Exempel 3: Givet mönstret Sample[A-CEG].dat
och filer:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Mönstret skulle matcha:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Rekursiva jokerteckenexempel
Med tanke på mönstret **/*.ext
och filer:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Mönstret skulle matcha:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Exkludera mönsterexempel
Med tanke på mönstret:
*
!*.xml
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Dubbel exkludera
Med tanke på mönstret:
*
!*.xml
!!Fabrikam.xml
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Undantag för mapp
Med tanke på mönstret:
**
!sample/**
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml