about_Wildcards
Deskripsi singkat
Menjelaskan cara menggunakan karakter kartubebas di PowerShell.
Deskripsi panjang
Karakter kartubebas mewakili satu atau banyak karakter. Anda dapat menggunakannya untuk membuat pola kata dalam perintah. Ekspresi kartubebas digunakan dengan -like
operator atau dengan parameter apa pun yang menerima kartubebas.
Misalnya, untuk mencocokkan semua file di C:\Techdocs
direktori dengan .ppt
ekstensi nama file, ketik:
Get-ChildItem C:\Techdocs\*.ppt
Dalam hal ini, karakter kartubebas tanda bintang (*
) mewakili karakter apa pun yang muncul sebelum .ppt
ekstensi nama file.
Ekspresi kartubebas lebih sederhana daripada ekspresi reguler. Untuk informasi selengkapnya, lihat about_Regular_Expressions.
PowerShell mendukung karakter kartubebas berikut:
*
- Cocokkan nol atau lebih karaktera*
cocokaA
,ag
, danApple
a*
tidak cocokbanana
?
- Untuk string, cocokkan satu karakter dalam posisi tersebut?n
cocokan
,in
, danon
?n
tidak cocokran
?
- Untuk file dan direktori, cocokkan nol atau satu karakter dalam posisi tersebut?.txt
kecocokana.txt
danb.txt
?.txt
tidak cocokab.txt
[ ]
- Cocokkan berbagai karakter[a-l]ook
cocokbook
,cook
, danlook
[a-l]ook
tidak cocoktook
[ ]
- Cocokkan karakter tertentu[bc]ook
kecocokanbook
dancook
[bc]ook
tidak cocokhook
`*
- Cocokkan karakter apa pun sebagai literal (bukan karakter kartubebas)12`*4
Pertandingan12*4
12`*4
tidak cocok1234
Anda dapat menyertakan beberapa karakter kartubebas dalam pola kata yang sama. Misalnya, untuk menemukan file teks dengan nama yang dimulai dengan huruf a sampai l, ketik:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Catatan
Pencocokan kartubebas untuk item sistem file bekerja secara berbeda dari untuk string. Untuk informasi selengkapnya, lihat bagian Keterangan dari metode DirectoryInfo.GetFiles(String, EnumerationOptions).
Mungkin ada kasus di mana Anda ingin mencocokkan karakter harfiah daripada memperlakukannya sebagai karakter kartubebas. Dalam kasus tersebut Anda dapat menggunakan karakter backtick (`
) untuk menghindari karakter kartubebas sehingga dibandingkan menggunakan nilai karakter harfiah. Misalnya, '*hello`?*'
cocok dengan string yang berisi "halo?".
Banyak cmdlet menerima karakter kartubebas dalam nilai parameter. Topik Bantuan untuk setiap cmdlet menjelaskan parameter mana yang menerima karakter kartubebas. Untuk parameter yang menerima karakter kartubebas, penggunaannya tidak peka huruf besar/kecil.
Anda dapat menggunakan karakter kartubebas dalam perintah dan blok skrip, seperti untuk membuat pola kata yang mewakili nilai properti. Misalnya, perintah berikut mendapatkan layanan di mana nilai properti ServiceType menyertakan Interaktif.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Dalam contoh berikut, If
pernyataan menyertakan kondisi yang menggunakan karakter kartubebas untuk menemukan nilai properti. Jika Deskripsi titik pemulihan menyertakan PowerShell, perintah menambahkan nilai properti CreationTime titik pemulihan ke file log.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}