Informations de référence sur les modèles de correspondance de fichiers
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Syntaxe du modèle
Un modèle est une chaîne ou une liste de chaînes délimitées par une nouvelle ligne. Les noms de fichiers et de répertoires sont comparés aux modèles à inclure (ou parfois exclure) dans une tâche. Vous pouvez créer un comportement complexe en empilant plusieurs modèles. Consultez fnmatch pour obtenir un guide de syntaxe complète.
Mettre en correspondance les caractères
La plupart des caractères sont utilisés comme correspondances exactes. Ce qui compte comme une correspondance « exacte » dépend de la plateforme : le système de fichiers Windows ne respecte pas la casse, de sorte que le modèle « ABC » correspondrait à un fichier appelé « abc ». Sur les systèmes de fichiers respectant la casse, ce modèle et ce nom ne correspondent pas.
Les caractères suivants ont un comportement spécial.
*
correspond à zéro ou plusieurs caractères dans un nom de fichier ou de répertoire. Consultez les exemples.?
correspond à n’importe quel caractère unique dans un nom de fichier ou de répertoire. Consultez les exemples.[]
correspond à un jeu ou une plage de caractères dans un nom de fichier ou de répertoire. Consultez les exemples.**
caractère générique récursif. Par exemple,/hello/**/*
correspond à tous les descendants de/hello
.
Utilisation étendue des caractères génériques
?(hello|world)
: correspond àhello
ouworld
zéro ou une fois*(hello|world)
: zéro ou plusieurs occurrences+(hello|world)
: une ou plusieurs occurrences@(hello|world)
: exactement une fois!(hello|world)
: nihello
niworld
Notez que les globs étendus ne peuvent pas couvrir les séparateurs de répertoires. Par exemple, +(hello/world|other)
est incorrect.
Commentaires
Les modèles qui commencent par #
sont traités comme des commentaires.
Exclure des modèles
Le !
de début change la signification d’un modèle « include » à exclure.
Vous pouvez inclure un modèle, exclure un sous-ensemble de celui-ci, puis en réinscrire un sous-ensemble : il s’agit d’un modèle « entrelacé ».
Plusieurs !
retournent la signification. Consultez les exemples.
Vous devez définir un modèle « Include » avant d’en exclure un. Consultez les exemples.
Échappement
L’habillage de caractères spéciaux dans []
peut être utilisé pour échapper des caractères glob littéraux dans un nom de fichier. Par exemple, le nom de fichier littéral hello[a-z]
peut être échappé en tant que hello[[]a-z]
.
Barre oblique
/
est utilisé comme séparateur de chemin d’accès sur Linux et macOS.
La plupart du temps, les agents Windows acceptent /
.
Les occasions où le séparateur Windows (\
) doit être utilisé sont documentés.
Exemples
Exemples de modèles de base
Exemples d’astérisque
Exemple 1 : Compte tenu du modèle *Website.sln
et des fichiers :
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Le modèle correspond à :
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Exemple 2 : Étant donné le modèle *Website/*.proj
et les chemins d’accès :
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Le modèle correspond à :
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Exemples de point d’interrogation
Exemple 1 : Compte tenu du modèle log?.log
et des fichiers :
log1.log
log2.log
log3.log
script.sh
Le modèle correspond à :
log1.log
log2.log
log3.log
Exemple 2 : Compte tenu du modèle image.???
et des fichiers :
image.tiff
image.png
image.ico
Le modèle correspond à :
image.png
image.ico
Exemples de jeu de caractères
Exemple 1 : Compte tenu du modèle Sample[AC].dat
et des fichiers :
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Le modèle correspond à :
SampleA.dat
SampleC.dat
Exemple 2 : Compte tenu du modèle Sample[A-C].dat
et des fichiers :
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Le modèle correspond à :
SampleA.dat
SampleB.dat
SampleC.dat
Exemple 3 : Compte tenu du modèle Sample[A-CEG].dat
et des fichiers :
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Le modèle correspond à :
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Exemples de caractères génériques récursifs
Compte tenu du modèle **/*.ext
et des fichiers :
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Le modèle correspond à :
sample1/A.ext
sample1/B.ext
sample2/C.ext
Exclure des exemples de modèles
Compte tenu du modèle :
*
!*.xml
et des fichiers :
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Le modèle correspond à :
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Double exclusion
Compte tenu du modèle :
*
!*.xml
!!Fabrikam.xml
et des fichiers :
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Le modèle correspond à :
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Exclusion de dossier
Compte tenu du modèle :
**
!sample/**
et des fichiers :
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Le modèle correspond à :
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml