Bagikan melalui


Referensi pola pencocokan file

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Sintaks pola

Pola adalah string atau daftar string yang dibatasi baris baru. Nama file dan direktori dibandingkan dengan pola untuk menyertakan (atau terkadang mengecualikannya) dalam tugas. Anda dapat membangun perilaku kompleks dengan menumpuk beberapa pola. Lihat fnmatch untuk panduan sintaks lengkap.

Cocokkan karakter

Sebagian besar karakter digunakan sebagai kecocokan yang tepat. Apa yang dihitung sebagai kecocokan "persis" tergantung platform: sistem file Windows tidak peka huruf besar/kecil, sehingga pola "ABC" akan cocok dengan file yang disebut "abc". Pada sistem file peka huruf besar/kecil, pola dan nama tersebut tidak akan cocok.

Karakter berikut memiliki perilaku khusus.

  • * cocok dengan nol karakter atau lebih dalam nama file atau direktori. Lihat contoh.
  • ? cocok dengan satu karakter dalam nama file atau direktori. Lihat contoh.
  • [] cocok dengan satu set atau rentang karakter dalam nama file atau direktori. Lihat contoh.
  • ** kartubebas rekursif. Misalnya, /hello/**/* cocok dengan semua turunan dari /hello.

Perpanjangan globbing

  • ?(hello|world) - kecocokan hello atau world nol atau satu kali
  • *(hello|world) - nol atau lebih kemunculan
  • +(hello|world) - satu atau beberapa kemunculan
  • @(hello|world) - tepat sekali
  • !(hello|world) - tidak hello atau world

Catatan, glob yang diperluas tidak dapat menjangkau pemisah direktori. Misalnya, +(hello/world|other) tidak valid.

Komentar

Pola yang dimulai diperlakukan # sebagai komentar.

Mengecualikan pola

Terkemuka ! mengubah arti pola sertakan untuk dikecualikan. Anda dapat menyertakan pola, mengecualikan subsetnya, lalu menyertakan kembali subsetnya: ini dikenal sebagai pola "terjalin".

Beberapa ! membalik arti. Lihat contoh.

Anda harus menentukan pola sertakan sebelum mengecualikan pola. Lihat contoh.

Melarikan diri

Membungkus karakter khusus dalam [] dapat digunakan untuk menghindari karakter glob harfiah dalam nama file. Misalnya nama hello[a-z] file harfiah dapat diloloskan sebagai hello[[]a-z].

Garis miring

/ digunakan sebagai pemisah jalur di Linux dan macOS. Sebagian besar waktu, agen Windows menerima /. Kesempatan di mana pemisah Windows (\) harus digunakan didokumenkan.

Contoh

Contoh pola dasar

Contoh tanda bintang

Contoh 1: Mengingat pola *Website.sln dan file:

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

Pola akan cocok:

ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

Contoh 2: Mengingat pola *Website/*.proj dan jalur:

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

Pola akan cocok:

ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj

Contoh tanda tanya

Contoh 1: Mengingat pola log?.log dan file:

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

Pola akan cocok:

log1.log
log2.log
log3.log

Contoh 2: Mengingat pola image.??? dan file:

image.tiff
image.png
image.ico

Pola akan cocok:

image.png
image.ico

Contoh set karakter

Contoh 1: Mengingat pola Sample[AC].dat dan file:

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

Pola akan cocok:

SampleA.dat
SampleC.dat

Contoh 2: Mengingat pola Sample[A-C].dat dan file:

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

Pola akan cocok:

SampleA.dat
SampleB.dat
SampleC.dat

Contoh 3: Mengingat pola Sample[A-CEG].dat dan file:

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

Pola akan cocok:

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

Contoh kartubebas rekursif

Mengingat pola **/*.ext dan file:

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

Pola akan cocok:

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

Mengecualikan contoh pola

Mengingat polanya:

*
!*.xml

dan file:

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

Pola akan cocok:

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

Mengecualikan ganda

Mengingat polanya:

*
!*.xml
!!Fabrikam.xml

dan file:

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

Pola akan cocok:

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

Folder dikecualikan

Mengingat polanya:

**
!sample/**

dan file:

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

Pola akan cocok:

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml