Delen via


Verwijzing naar overeenkomende patronen voor bestanden

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

Patroonsyntaxis

Een patroon is een tekenreeks of lijst met door nieuwe regels gescheiden tekenreeksen. Bestands- en mapnamen worden vergeleken met patronen om ze in een taak op te nemen (of soms uit te sluiten). U kunt complex gedrag opbouwen door meerdere patronen te stapelen. Zie voor een volledige syntaxishandleiding.

Tekens vergelijken

De meeste tekens worden gebruikt als exacte overeenkomsten. Wat telt als een 'exacte' overeenkomst is afhankelijk van het platform: het Windows-bestandssysteem is niet hoofdlettergevoelig, dus het patroon 'ABC' komt overeen met een bestand met de naam 'abc'. In hoofdlettergevoelige bestandssysteemen komt dat patroon en die naam niet overeen.

De volgende tekens hebben een speciaal gedrag.

  • * komt overeen met nul of meer tekens binnen de naam van een bestand of map. Zie voorbeelden.
  • ? komt overeen met een willekeurig teken binnen de naam van een bestand of map. Zie voorbeelden.
  • [] komt overeen met een reeks tekens binnen een bestands- of mapnaam. Zie voorbeelden.
  • ** recursief jokerteken. /hello/**/* komt bijvoorbeeld overeen met alle afstammelingen van /hello.

Uitgebreide globbing

  • ?(hello|world) - overeenkomsten hello of world nul keer of eenmalig
  • *(hello|world) - nul of meer exemplaren
  • +(hello|world) - een of meer exemplaren
  • @(hello|world) - precies één keer
  • !(hello|world) - niet hello of world

Opmerking

Uitgebreide globs kunnen geen adreslijstscheidingstekens omvatten. Is bijvoorbeeld +(hello/world|other) niet geldig.

Opmerkingen

Patronen die beginnen met # worden behandeld als opmerkingen.

Patronen uitsluiten

Voorloop-! verandert de betekenis van een include-patroon dat moet worden uitgesloten. U kunt een patroon opnemen, een subset ervan uitsluiten en vervolgens een subset hiervan opnieuw opnemen: dit wordt een 'interleaved'-patroon genoemd.

Meerdere ! spiegelt de betekenis. Zie voorbeelden.

U moet een include-patroon definiëren voordat een uitsluitingspatroon wordt gebruikt. Zie voorbeelden.

Ontsnappen

Speciale tekens verpakken in [] kunnen worden gebruikt om letterlijke globtekens in een bestandsnaam te ontsnappen. De letterlijke bestandsnaam hello[a-z] kan bijvoorbeeld worden ontsnapt als hello[[]a-z].

Slash

/ wordt gebruikt als padscheidingsteken in Linux en macOS. In de meeste tijd accepteren Windows-agents /. Gelegenheden waarin het Windows-scheidingsteken (\) moet worden gebruikt, worden gedocumenteerd.

Voorbeelden

Voorbeelden van basispatronen

Voorbeelden van sterretjes

Voorbeeld 1: Gezien het patroon *Website.slnen de volgende bestanden:

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

Het patroon komt overeen met:

ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

voorbeeld 2: Gegeven het patroon *Website/*.proj en paden:

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

Het patroon komt overeen met:

ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj

Voorbeelden van vraagtekens

Voorbeeld 1: Gezien het patroon log?.logen de volgende bestanden:

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

Het patroon komt overeen met:

log1.log
log2.log
log3.log

Voorbeeld 2: Gezien het patroon image.???en de volgende bestanden:

image.tiff
image.png
image.ico

Het patroon komt overeen met:

image.png
image.ico

Voorbeelden van tekenset

Voorbeeld 1: Gezien het patroon Sample[AC].daten de volgende bestanden:

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

Het patroon komt overeen met:

SampleA.dat
SampleC.dat

Voorbeeld 2: Gezien het patroon Sample[A-C].daten de volgende bestanden:

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

Het patroon komt overeen met:

SampleA.dat
SampleB.dat
SampleC.dat

Voorbeeld 3: Gezien het patroon Sample[A-CEG].daten de volgende bestanden:

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

Het patroon komt overeen met:

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

Recursieve jokertekens

Gezien het patroon **/*.exten de volgende bestanden:

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

Het patroon komt overeen met:

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

Het volgende voorbeeld is gegenereerd door Copilot. Copilot wordt mogelijk gemaakt door AI, dus verrassingen en fouten zijn mogelijk. Zie voor meer informatie de veelgestelde vragen over algemeen gebruik van Copilot.

Het **/*.ext glob-patroon is een krachtig recursief patroon dat wordt gebruikt in veel bestandssystemen en hulpprogramma's (zoals bash, zshPython glob, enzovoort) om alle bestanden te vinden die eindigen in .ext de huidige map en alle submappen, ongeacht hoe diep genest.

Hier volgen enkele voorbeeldpaden die overeenkomen met **/*.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

Het ** onderdeel betekent een willekeurig aantal mappen (inclusief nul) en *.ext betekent elk bestand dat eindigt op .ext.

Voorbeelden van uitsluitingspatronen

Op basis van het volgende patroon en de volgende bestanden:

*
!*.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Het patroon komt overeen met:

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

Voorbeelden van dubbele uitsluiting

Op basis van het volgende patroon en de volgende bestanden:

*
!*.xml
!!Fabrikam.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Het patroon komt overeen met:

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

Voorbeelden van het uitsluiten van mappen

Op basis van het volgende patroon en de volgende bestanden:

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

Het patroon komt overeen met:

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml