about_Wildcards
Krótki opis
Opisuje sposób używania symboli wieloznacznych w programie PowerShell.
Długi opis
Symbole wieloznaczne reprezentują jeden lub wiele znaków. Można ich używać do tworzenia wzorców wyrazów w poleceniach. Wyrażenia wieloznaczne są używane z operatorem -like
lub z dowolnym parametrem, który akceptuje symbole wieloznaczne.
Aby na przykład dopasować wszystkie pliki w C:\Techdocs
katalogu z .ppt
rozszerzeniem nazwy pliku, wpisz:
Get-ChildItem C:\Techdocs\*.ppt
W tym przypadku symbol wieloznaczny gwiazdki (*
) reprezentuje wszelkie znaki, które pojawiają się przed .ppt
rozszerzeniem nazwy pliku.
Wyrażenia wieloznaczne są prostsze niż wyrażenia regularne. Aby uzyskać więcej informacji, zobacz about_Regular_Expressions.
Program PowerShell obsługuje następujące symbole wieloznaczne:
*
- Dopasuj zero lub więcej znakówa*
dopasowywujeaA
,ag
iApple
a*
nie pasuje dobanana
?
- W przypadku ciągów dopasuj jeden znak w tej pozycji?n
dopasowywujean
,in
ion
?n
nie pasuje doran
?
- W przypadku plików i katalogów dopasuj zero lub jeden znak w tej pozycji?.txt
dopasowaniea.txt
ib.txt
?.txt
nie pasuje doab.txt
[ ]
- Dopasuj zakres znaków[a-l]ook
dopasowywujebook
,cook
ilook
[a-l]ook
nie pasuje dotook
[ ]
- Dopasuj określone znaki[bc]ook
dopasowaniebook
icook
[bc]ook
nie pasuje dohook
`*
- Dopasuj dowolny znak jako literał (nie symbol wieloznaczny)12`*4
Pasuje12*4
12`*4
nie pasuje do1234
W tym samym wzorcu wyrazu można uwzględnić wiele symboli wieloznacznych. Aby na przykład znaleźć pliki tekstowe z nazwami rozpoczynającymi się literami od l, wpisz:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Uwaga
Dopasowywanie symboli wieloznacznych dla elementów systemu plików działa inaczej niż w przypadku ciągów. Aby uzyskać więcej informacji, zobacz sekcję Uwagi metody DirectoryInfo.GetFiles(String, EnumerationOptions).
Mogą wystąpić przypadki, w których chcesz dopasować znak literału, a nie traktować go jako symbol wieloznaczny. W takich przypadkach można użyć znaku backtick (`
), aby uniknąć symbolu wieloznacznego, tak aby był porównywany przy użyciu wartości znaku literału. Na przykład '*hello`?*'
dopasuje ciągi zawierające ciągi "hello?".
Wiele poleceń cmdlet akceptuje symbole wieloznaczne w wartościach parametrów. W temacie Pomoc dla każdego polecenia cmdlet opisano, które parametry akceptują symbole wieloznaczne. W przypadku parametrów, które akceptują symbole wieloznaczne, ich użycie jest bez uwzględniania wielkości liter.
Symbole wieloznaczne można używać w poleceniach i blokach skryptów, takich jak tworzenie wzorca wyrazu reprezentującego wartości właściwości. Na przykład następujące polecenie pobiera usługi, w których właściwość ServiceType zawiera wartość właściwości Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
W poniższym przykładzie instrukcja If
zawiera warunek, który używa symboli wieloznacznych do znajdowania wartości właściwości. Jeśli opis punktu przywracania zawiera program PowerShell, polecenie dodaje wartość właściwości CreationTime punktu przywracania do pliku dziennika.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}