Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 karakter-
a*cocokaA,ag, danApple -
a*tidak cocokbanana
-
-
?- Untuk string, cocokkan satu karakter dalam posisi tersebut-
?ncocokan,in, danon -
?ntidak cocokran
-
-
?- Untuk file dan direktori, cocokkan nol atau satu karakter dalam posisi tersebut-
?.txtkecocokana.txtdanb.txt -
?.txttidak cocokab.txt
-
-
[ ]- Cocokkan berbagai karakter-
[a-l]ookcocokbook,cook, danlook -
[a-l]ooktidak cocoktook
-
-
[ ]- Cocokkan karakter tertentu-
[bc]ookkecocokanbookdancook -
[bc]ooktidak cocokhook
-
-
`*- Cocokkan karakter apa pun sebagai literal (bukan karakter kartubebas)-
12`*4korek api12*4 -
12`*4tidak 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
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 blokir 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)"
}
}
Melarikan diri karakter kartubebas dalam nama file dan direktori
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).
Ketika Anda mencoba mengakses file atau direktori yang berisi karakter kartubebas nama, Anda harus menghindari karakter kartubebas. Pertimbangkan file berikut:
PS> Get-ChildItem
Directory: D:\temp\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/3/2025 3:39 PM 41 file[1].txt
-a--- 11/3/2025 3:39 PM 41 file[2].txt
-a--- 11/3/2025 3:39 PM 41 file[3].txt
Karakter kurung siku ([]) adalah kartubebas sehingga harus diloloskan saat mencoba mendapatkan file menggunakan salah satu cmdlet Item, seperti Get-Item.
PS> Get-Item file`[1`].txt
Namun, contoh ini gagal karena nilai nama file terikat ke parameter Jalur , yang mendukung karakter kartubebas. Dalam hal ini, `[ pola diselesaikan menjadi biasa [, yang ditafsirkan parameter Path sebagai wildcard. Ada tiga cara untuk mengatasi hal ini:
Lolos dari karakter backtick.
PS> Get-Item -Path file``[1``].txt Directory: D:\temp\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/3/2025 3:39 PM 41 file[1].txtLetakkan nama file dalam tanda kutip tunggal sehingga backtick tidak diperluas sebelum terikat ke parameter Jalur .
PS> Get-Item -Path 'file`[1`].txt' Directory: D:\temp\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/3/2025 3:39 PM 41 file[1].txtMenggunakan parameter LiteralPath
PS> Get-Item -LiteralPath file[1].txt Directory: D:\temp\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/3/2025 3:39 PM 41 file[1].txt