Odwołanie do wzorców dopasowywania plików
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Składnia wzorca
Wzorzec jest ciągiem lub listą ciągów rozdzielanych wierszami. Nazwy plików i katalogów są porównywane z wzorcami do uwzględnienia (lub czasami wykluczania) w zadaniu. Złożone zachowanie można tworzyć, stosując wiele wzorców. Aby zapoznać się z pełnym przewodnikiem składni, zobacz fnmatch.
Dopasuj znaki
Większość znaków jest używana jako dokładne dopasowania. To, co liczy się jako "dokładne" dopasowanie jest zależne od platformy: system plików systemu Windows jest bez uwzględniania wielkości liter, więc wzorzec "ABC" będzie pasował do pliku o nazwie "abc". W systemach plików z uwzględnieniem wielkości liter ten wzorzec i nazwa nie będą zgodne.
Następujące znaki mają specjalne zachowanie.
-
*
pasuje do zera lub większej liczby znaków w nazwie pliku lub katalogu. Zobacz przykłady. -
?
pasuje do dowolnego pojedynczego znaku w nazwie pliku lub katalogu. Zobacz przykłady. -
[]
pasuje do zestawu lub zakresu znaków w nazwie pliku lub katalogu. Zobacz przykłady. -
**
cykliczne symbole wieloznaczne. Na przykład/hello/**/*
pasuje do wszystkich elementów podrzędnych/hello
.
Rozszerzone globbing
-
?(hello|world)
— dopasujehello
lubworld
zero lub jeden raz -
*(hello|world)
— zero lub więcej wystąpień -
+(hello|world)
— co najmniej jedno wystąpienie -
@(hello|world)
— dokładnie raz -
!(hello|world)
— niehello
aniworld
Należy pamiętać, że rozszerzone globy nie mogą obejmować separatorów katalogów. Na przykład +(hello/world|other)
jest nieprawidłowa.
Komentarze
Wzorce rozpoczynające się od #
są traktowane jako komentarze.
Wyklucz wzorce
Wiodący !
zmienia znaczenie wzorca dołączania do wykluczenia.
Można uwzględnić wzorzec, wykluczyć jego podzbiór, a następnie ponownie dołączyć podzbiór tego: jest to znane jako wzorzec "przeplatany".
Wiele !
przerzuca znaczenie. Zobacz przykłady.
Przed wykluczeniem należy zdefiniować wzorzec dołączania. Zobacz przykłady.
Ucieczki
Zawijanie znaków specjalnych w []
może służyć do ucieczki znaków globu literału w nazwie pliku. Na przykład nazwę pliku literału hello[a-z]
można stosować jako hello[[]a-z]
.
Ukośnik
/
jest używany jako separator ścieżki w systemach Linux i macOS.
W większości przypadków agenci systemu Windows akceptują /
.
Przypadki, w których należy użyć separatora systemu Windows (\
) są udokumentowane.
Przykłady
Przykłady podstawowego wzorca
Przykłady gwiazdki
Przykład 1: Biorąc pod uwagę wzorzec *Website.sln
i pliki:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Wzorzec będzie zgodny z następującymi elementami:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Przykład 2: Biorąc pod uwagę wzorzec *Website/*.proj
i ścieżki:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Wzorzec będzie zgodny z następującymi elementami:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Przykłady znaków zapytania
Przykład 1: Biorąc pod uwagę wzorzec log?.log
i pliki:
log1.log
log2.log
log3.log
script.sh
Wzorzec będzie zgodny z następującymi elementami:
log1.log
log2.log
log3.log
Przykład 2: Biorąc pod uwagę wzorzec image.???
i pliki:
image.tiff
image.png
image.ico
Wzorzec będzie zgodny z następującymi elementami:
image.png
image.ico
Przykłady zestawów znaków
Przykład 1: Biorąc pod uwagę wzorzec Sample[AC].dat
i pliki:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Wzorzec będzie zgodny z następującymi elementami:
SampleA.dat
SampleC.dat
Przykład 2: Biorąc pod uwagę wzorzec Sample[A-C].dat
i pliki:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Wzorzec będzie zgodny z następującymi elementami:
SampleA.dat
SampleB.dat
SampleC.dat
Przykład 3: Biorąc pod uwagę wzorzec Sample[A-CEG].dat
i pliki:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Wzorzec będzie zgodny z następującymi elementami:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Przykłady cyklicznych symboli wieloznacznych
Biorąc pod uwagę wzorzec **/*.ext
i pliki:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Wzorzec będzie zgodny z następującymi elementami:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Przykłady wykluczania wzorca
Biorąc pod uwagę wzorzec:
*
!*.xml
i pliki:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Wzorzec będzie zgodny z następującymi elementami:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Podwójne wykluczanie
Biorąc pod uwagę wzorzec:
*
!*.xml
!!Fabrikam.xml
i pliki:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Wzorzec będzie zgodny z następującymi elementami:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Wykluczanie folderu
Biorąc pod uwagę wzorzec:
**
!sample/**
i pliki:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Wzorzec będzie zgodny z następującymi elementami:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml