Udostępnij za pośrednictwem


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. Zobacz fnmatch , aby zapoznać się z pełnym przewodnikiem składni.

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.

  • * Dopasuje zero lub więcej 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 potomnych elementu /hello.

Rozszerzone globbing

  • ?(hello|world) - pasuje hello lub world 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) - nie hello lub world

Należy pamiętać, że rozszerzone globy nie mogą obejmować separatorów katalogów. Na przykład +(hello/world|other) jest nieprawidłowy.

Komentarze

Wzorce rozpoczynające się od # są traktowane jako komentarze.

Wyklucz wzorce

Wiodące ! zmiany znaczenia 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 programie [] może służyć do ucieczki znaków globu literału w nazwie pliku. Na przykład nazwę hello[a-z] pliku literału 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ą /element . Sytuacje, 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