Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Syntaxe vzoru
Vzor je řetězec nebo seznam řetězců oddělených novým řádkem. Názvy souborů a adresářů se porovnávají se vzory, které se mají zahrnout (nebo někdy vyloučit) do úkolu. Složité chování můžete vytvořit tak, že naskládáte několik vzorů. Úplný průvodce syntaxí najdete v fnmatch.
Shoda znaků
Většina znaků se používá jako přesná shoda. Co se počítá jako "přesná" shoda je závislá na platformě: systém souborů Windows nerozlišuje malá a velká písmena, takže vzor "ABC" by odpovídal souboru s názvem "abc". V systému souborů rozlišujících malá a velká písmena by se tento vzor a název neshodovaly.
Následující znaky mají zvláštní chování.
-
*
odpovídá nule nebo více znaků v názvu souboru nebo adresáře. Podívejte se na příklady. -
?
odpovídá libovolnému znaku v názvu souboru nebo adresáře. Podívejte se na příklady. -
[]
odpovídá sadě nebo rozsahu znaků v názvu souboru nebo adresáře. Podívejte se na příklady. -
**
rekurzivní zástupný znak. Například/hello/**/*
odpovídá všem potomkům/hello
.
Rozšířené globbing
-
?(hello|world)
- odpovídáhello
neboworld
nenásobí nebo jednou -
*(hello|world)
– nula nebo více výskytů -
+(hello|world)
– jeden nebo více výskytů -
@(hello|world)
– přesně jednou -
!(hello|world)
– nehello
aniworld
Poznámka:
Rozšířené globy nemohou zahrnovat oddělovače adresářů.
+(hello/world|other)
Například není platný.
Komentáře
Vzory začínající #
se považují za komentáře.
Vyloučení vzorů
Úvodní !
změní význam vzorce zahrnutí, který se má vyloučit.
Můžete zahrnout vzor, vyloučit jeho podmnožinu a pak znovu zahrnout podmnožinu, která se označuje jako "prokládání".
Více !
překlopí význam. Podívejte se na příklady.
Před vzorem vyloučení musíte definovat vzor zahrnutí. Podívejte se na příklady.
Unikající
Zalamování speciálních znaků v []
lze použít k řídicím literálovým znakům v názvu souboru. Například název literálového souboru hello[a-z]
může být uchvácený jako hello[[]a-z]
.
Lomítko
/
se používá jako oddělovač cest v Linuxu a macOS.
Ve většině případů agenti Windows přijímají /
.
Příležitosti, kdy je nutné použít oddělovač oken (\
), jsou zdokumentované.
Příklady
- Základní příklady vzorů
- Příklady hvězdičky
- Příklady otazníku
- Příklady znakové sady
- Příklady rekurzivních zástupných znaků
- Příklady vyloučení vzorů
- Dvojité vyloučení příkladů
- Příklady vyloučení složek
Základní příklady vzorů
Příklady hvězdičky
Příklad 1: Vzhledem k vzoru *Website.sln
a následujícím souborům:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Vzor by odpovídal:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Příklad 2: Vzhledem k *Website/*.proj
vzoru a cestám:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Vzor by odpovídal:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Příklady otazníku
Příklad 1: Vzhledem k vzoru log?.log
a následujícím souborům:
log1.log
log2.log
log3.log
script.sh
Vzor by odpovídal:
log1.log
log2.log
log3.log
Příklad 2: Vzhledem k vzoru image.???
a následujícím souborům:
image.tiff
image.png
image.ico
Vzor by odpovídal:
image.png
image.ico
Příklady znakové sady
Příklad 1: Vzhledem k vzoru Sample[AC].dat
a následujícím souborům:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Vzor by odpovídal:
SampleA.dat
SampleC.dat
Příklad 2: Vzhledem k vzoru Sample[A-C].dat
a následujícím souborům:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Vzor by odpovídal:
SampleA.dat
SampleB.dat
SampleC.dat
Příklad 3: Vzhledem k vzoru Sample[A-CEG].dat
a následujícím souborům:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Vzor by odpovídal:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Příklady rekurzivních zástupných znaků
Vzhledem k vzoru **/*.ext
a následujícím souborům:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Vzor by odpovídal:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Následující příklad vygeneroval Copilot. Copilot využívá AI, takže překvapení a chyby jsou možné. Další informace najdete v tématu Nejčastější dotazy k obecnému použití copilotu.
Vzor **/*.ext
globu je výkonný rekurzivní vzor používaný v mnoha systémech souborů a nástrojích (například bash
, zsh
Python glob
, atd.), aby odpovídal všem souborům končícím v .ext
aktuálním adresáři a všech podadresářích, bez ohledu na to, jak hluboko vnořené.
Tady je několik ukázkových cest, které by odpovídaly **/*.ext
:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/subdir1/D.ext
sample2/subdir1/subdir2/E.ext
sample3/F.ext
sample3/subdir3/G.ext
sample3/subdir3/subdir4/H.ext
Část **
znamená libovolný počet adresářů (včetně nuly) a *.ext
znamená jakýkoli soubor končící na .ext
.
Příklady vyloučení vzorů
Vzhledem k následujícímu vzoru a následujícím souborům:
*
!*.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Vzor by odpovídal:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Dvojité vyloučení příkladů
Vzhledem k následujícímu vzoru a následujícím souborům:
*
!*.xml
!!Fabrikam.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Vzor by odpovídal:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Příklady vyloučení složek
Vzhledem k následujícímu vzoru a následujícím souborům:
**
!sample/**
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Vzor by odpovídal:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml