about_Wildcards
簡短描述
描述如何在 PowerShell 中使用萬用字元。
完整描述
萬用字元代表一或多個字元。 您可以使用它們在命令中建立文字模式。 萬用字元運算式會搭配 -like
運算子或接受萬用字元的任何參數使用。
例如,若要比對目錄中所有副檔名為 .ppt
的檔案 C:\Techdocs
,請輸入:
Get-ChildItem C:\Techdocs\*.ppt
在此情況下,星號 () *
萬用字元代表副檔名之前 .ppt
出現的任何字元。
萬用字元運算式比正則運算式更簡單。 如需詳細資訊,請參閱 about_Regular_Expressions。
PowerShell 支援下列萬用字元:
萬用字元 | 描述 | 範例 | 相符項目 | 無相符專案 |
---|---|---|---|---|
* |
比對零個或多個字元 | a* |
aA, ag, Apple | 香蕉 |
? |
比對該位置中的一個字元 | ?n |
、in、on | 跑 |
[ ] |
比對字元範圍 | [a-l\]ook |
book, cook, look | 花費 |
[ ] |
比對特定字元 | [bc]ook |
book, cook | 鉤 |
`* |
比對任何字元做為常值, (不是萬用字元) | 12`*4 |
12*4 | 1234 |
您可以在相同的文字模式中包含多個萬用字元。 例如,若要尋找名稱開頭為 a 到 l的文字檔,請輸入:
Get-ChildItem C:\Techdocs\[a-l]*.txt
在某些情況下,您可能會想要比對常值字元,而不是將其視為萬用字元。 在這些情況下,您可以使用反引號 (`
) 字元來逸出萬用字元,以便使用常值字元值加以比較。 例如, '*hello`?*'
比對包含 「hello?」的字串。
許多 Cmdlet 接受參數值中的萬用字元。 每個 Cmdlet 的說明主題描述哪些參數接受萬用字元。 對於接受萬用字元的參數,其用法不區分大小寫。
您可以在命令和腳本區塊中使用萬用字元,例如建立代表屬性值的文字模式。 例如,下列命令會取得 ServiceType 屬性值包含 Interactive的服務。
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
在下列範例中 If
,語句包含使用萬用字元尋找屬性值的條件。 如果還原 點的描述包含PowerShell,命令會將還原點 的 CreationTime 屬性值新增至記錄檔。
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}