Bagikan melalui


Mendukung Karakter Wildcard di Parameter Cmdlet

Seringkali, Anda harus merancang cmdlet untuk dijalankan terhadap sekelompok sumber daya daripada terhadap satu sumber daya. Misalnya, cmdlet mungkin perlu menemukan semua file di penyimpanan data yang memiliki nama atau ekstensi yang sama. Anda harus memberikan dukungan untuk karakter kartubebas saat merancang cmdlet yang akan dijalankan terhadap sekelompok sumber daya.

Nota

Menggunakan karakter kartubebas terkadang disebut sebagai globbing.

Cmdlet Windows PowerShell yang Menggunakan Wildcard

Banyak cmdlet Windows PowerShell mendukung karakter kartubebas untuk nilai parameternya. Misalnya, hampir setiap cmdlet yang memiliki parameter Name atau Path mendukung karakter kartubebas untuk parameter ini. (Meskipun sebagian besar cmdlet yang memiliki parameter Path juga memiliki parameter LiteralPath yang tidak mendukung karakter kartubebas.) Perintah berikut menunjukkan bagaimana karakter kartubebas digunakan untuk mengembalikan semua cmdlet dalam sesi saat ini yang namanya berisi kata kerja Dapatkan.

Get-Command get-*

Karakter KartuBebas yang Didukung

Windows PowerShell mendukung karakter kartubebas berikut.

Kartu Bebas Deskripsi Contoh Korek api Tidak cocok
* Cocok dengan nol karakter atau lebih, dimulai dari posisi yang ditentukan a* A, ag, Apple
? Cocok dengan karakter apa pun pada posisi yang ditentukan ?n An, di, pada Berlari
[ ] Cocok dengan rentang karakter [a-l]ook buku, memasak, melihat nook, mengambil
[ ] Cocok dengan karakter yang ditentukan [bn]ook buku, nook masak, lihat

Saat Anda merancang cmdlet yang mendukung karakter kartubebas, izinkan kombinasi karakter kartubebas. Misalnya, perintah berikut menggunakan cmdlet Get-ChildItem untuk mengambil semua file .txt yang ada di folder C:\Techdocs dan yang dimulai dengan huruf "a" melalui "l."

Get-ChildItem C:\techdocs\[a-l]\*.txt

Perintah sebelumnya menggunakan rentang wildcard [a-l] untuk menentukan bahwa nama file harus dimulai dengan karakter "a" hingga "l" dan menggunakan karakter kartubebas * sebagai tempat penampung untuk karakter apa pun antara huruf pertama nama file dan ekstensi .txt.

Contoh berikut menggunakan pola wildcard rentang yang mengecualikan huruf "d" tetapi menyertakan semua huruf lain dari "a" hingga "f."

Get-ChildItem C:\techdocs\[a-cef]\*.txt

Menangani Karakter Literal dalam Pola Wildcard

Jika pola kartubebas yang Anda tentukan berisi karakter harfiah yang tidak boleh ditafsirkan sebagai karakter kartubebas, gunakan karakter backtick (`) sebagai karakter escape. Saat Anda menentukan karakter harfiah dalam API PowerShell, gunakan satu backtick. Saat Anda menentukan karakter harfiah di prompt perintah PowerShell, gunakan dua backtick.

Misalnya, pola berikut berisi dua tanda kurung yang harus diambil secara harfiah.

Saat digunakan dalam PowerShell API, gunakan:

  • "John Smith '[*']"

Saat digunakan dari prompt perintah PowerShell:

  • "John Smith ''[*'']"

Pola ini cocok dengan "John Smith [Marketing]" atau "John Smith [Development]". Contohnya:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Output Cmdlet dan Karakter KartuBebas

Ketika parameter cmdlet mendukung karakter kartubebas, operasi biasanya menghasilkan output array. Terkadang, tidak masuk akal untuk mendukung output array karena pengguna mungkin hanya menggunakan satu item. Misalnya, cmdlet Set-Location tidak mendukung output array karena pengguna hanya mengatur satu lokasi. Dalam hal ini, cmdlet masih mendukung karakter kartubebas, tetapi memaksa resolusi ke satu lokasi.

Lihat Juga

Menulis Cmdlet Windows PowerShell

Kelas WildcardPattern