Naslaginformatie over bestandskoppelingspatronen

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 fnmatch 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 in een bestand of mapnaam. Zie voorbeelden.
  • [] komt overeen met een set of een reeks tekens binnen de naam van een bestand of map. Zie voorbeelden.
  • ** recursief jokerteken. Komt bijvoorbeeld /hello/**/* overeen met alle afstammelingen van /hello.

Uitgebreide globbing

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

Houd er rekening mee dat uitgebreide globs geen adreslijstscheidingstekens kunnen omvatten. Is bijvoorbeeld +(hello/world|other) ongeldig.

Opmerkingen

Patronen die beginnen, # 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 insluitingspatroon definiëren voordat een uitsluitingspatroon wordt uitgesloten. Zie voorbeelden.

Ontsnappen

Speciale tekens [] verpakken kan worden gebruikt om letterlijke glob-tekens 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. Meestal accepteren /Windows-agents . Gelegenheden waarin het Windows-scheidingsteken (\) moet worden gebruikt, worden gedocumenteerd.

Voorbeelden

Voorbeelden van basispatronen

Voorbeelden van sterretjes

Voorbeeld 1: Gegeven het patroon *Website.sln en de 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 de 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: Gegeven het patroon log?.log en de bestanden:

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

Het patroon komt overeen met:

log1.log
log2.log
log3.log

Voorbeeld 2: Gegeven het patroon image.??? en de bestanden:

image.tiff
image.png
image.ico

Het patroon komt overeen met:

image.png
image.ico

Voorbeelden van tekenset

Voorbeeld 1: Gegeven het patroon Sample[AC].dat en de bestanden:

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

Het patroon komt overeen met:

SampleA.dat
SampleC.dat

Voorbeeld 2: Gegeven het patroon Sample[A-C].dat en de bestanden:

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

Het patroon komt overeen met:

SampleA.dat
SampleB.dat
SampleC.dat

Voorbeeld 3: Gegeven het patroon Sample[A-CEG].dat en de 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

Gegeven het patroon **/*.ext en de 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

Voorbeelden van uitsluitingspatronen

Gegeven het patroon:

*
!*.xml

en bestanden:

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

Dubbele uitsluiting

Gegeven het patroon:

*
!*.xml
!!Fabrikam.xml

en bestanden:

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

Map uitsluiten

Gegeven het patroon:

**
!sample/**

en bestanden:

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