Informazioni di riferimento per i criteri di corrispondenza dei file

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Sintassi dei criteri

Un criterio è una stringa o un elenco di stringhe delimitate da nuova riga. I nomi di file e directory vengono confrontati con i modelli da includere (o a volte escludere) in un'attività. È possibile creare un comportamento complesso impilando più modelli. Vedere fnmatch per una guida completa alla sintassi.

Caratteri di corrispondenza

La maggior parte dei caratteri viene usata come corrispondenze esatte. Ciò che conta come corrispondenza "esatta" è dipendente dalla piattaforma: il file system di Windows non fa distinzione tra maiuscole e minuscole, quindi il modello "ABC" corrisponde a un file denominato "abc". Nei file system con distinzione tra maiuscole e minuscole il modello e il nome non corrispondono.

I caratteri seguenti hanno un comportamento speciale.

  • * corrisponde a zero o più caratteri all'interno di un nome di file o directory. Vedere esempi.
  • ? corrisponde a qualsiasi carattere singolo all'interno di un nome di file o directory. Vedere esempi.
  • [] corrisponde a un set o a un intervallo di caratteri all'interno di un nome di file o directory. Vedere esempi.
  • ** carattere jolly ricorsivo. Ad esempio, /hello/**/* corrisponde a tutti i discendenti di /hello.

Globbing esteso

  • ?(hello|world) - corrisponde hello o world zero o una volta
  • *(hello|world) - zero o più occorrenze
  • +(hello|world) - una o più occorrenze
  • @(hello|world) - esattamente una volta
  • !(hello|world) - non hello o world

Si noti che i glob estesi non possono estendersi a separatori di directory. +(hello/world|other), ad esempio, non è valido:

Commenti

I modelli che iniziano con # vengono considerati come commenti.

Escludere i modelli

Modifica iniziale ! il significato di un criterio di inclusione da escludere. È possibile includere un modello, escluderne un sottoinsieme e quindi includerne di nuovo un sottoinsieme: si tratta di un modello "interleaved".

Più ! capovolge il significato. Vedere esempi.

È necessario definire un criterio di inclusione prima di escluderne uno. Vedere esempi.

Escape

Il wrapping di caratteri speciali in [] può essere usato per eseguire l'escape dei caratteri glob letterali in un nome file. Ad esempio, il nome hello[a-z] del file letterale può essere preceduto da un carattere di escape come hello[[]a-z].

Barra

/ viene usato come separatore di percorso in Linux e macOS. Nella maggior parte dei casi, gli agenti Windows accettano /. Le occasioni in cui è necessario usare il separatore di Windows (\) sono documentate.

Esempi

Esempi di criteri di base

Esempi di asterisco

Esempio 1: dato il criterio *Website.sln e i file:

ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

Il modello corrisponderà a:

ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

Esempio 2: dato il modello *Website/*.proj e i percorsi:

ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj

Il modello corrisponderà a:

ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj

Esempi di punto interrogativo

Esempio 1: dato il criterio log?.log e i file:

log1.log
log2.log
log3.log
script.sh

Il modello corrisponderà a:

log1.log
log2.log
log3.log

Esempio 2: dato il modello image.??? e i file:

image.tiff
image.png
image.ico

Il modello corrisponderà a:

image.png
image.ico

Esempi di set di caratteri

Esempio 1: dato il criterio Sample[AC].dat e i file:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

Il modello corrisponderà a:

SampleA.dat
SampleC.dat

Esempio 2: dato il modello Sample[A-C].dat e i file:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

Il modello corrisponderà a:

SampleA.dat
SampleB.dat
SampleC.dat

Esempio 3: Dato il modello Sample[A-CEG].dat e i file:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat

Il modello corrisponderà a:

SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat

Esempi di caratteri jolly ricorsivi

Dato il criterio **/*.ext e i file:

sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not

Il modello corrisponderà a:

sample1/A.ext
sample1/B.ext
sample2/C.ext

Esempi di criteri di esclusione

Dato il modello:

*
!*.xml

file e :

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Il modello corrisponderà a:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb

Doppia esclusione

Dato il modello:

*
!*.xml
!!Fabrikam.xml

file e :

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Il modello corrisponderà a:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Esclusione cartella

Dato il modello:

**
!sample/**

file e :

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml

Il modello corrisponderà a:

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml