關於通配符
簡短描述
描述如何在PowerShell中使用通配符。
詳細描述
通配符代表一或多個字元。 您可以使用它們在命令中建立文字模式。 例如,若要取得目錄中擴展名為.ppt
擴展名的所有檔案C:\Techdocs
,請輸入:
Get-ChildItem C:\Techdocs\*.ppt
在此情況下,星號 () *
通配符代表擴展名之前 .ppt
出現的任何字元。
PowerShell 支援下列通配符:
萬用字元 | 描述 | 範例 | 相符項目 | 不相符 |
---|---|---|---|---|
* | 比對零個或多個字元 | a* | aA、ag、Apple | 香蕉 |
? | 比對該位置中的一個字元 | ?n | 、in、on | 跑 |
[ ] | 比對字元範圍 | [a-l]ook | 書籍、操作者、外觀 | 已花費 |
[ ] | 比對特定字元 | [bc]ook | 書籍、操作者 | 鉤 |
您可以在相同的文字模式中包含多個通配符。 例如,若要尋找名稱開頭為 a 到 l 之字母的文字檔,請輸入:
Get-ChildItem C:\Techdocs\[a-l]*.txt
許多 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)"
}
}