Udostępnij za pośrednictwem


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 znak wieloznaczny gwiazdki (*) reprezentuje wszystkie znaki, które są wyświetlane 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ów
    • a* dopasowywuje aA, agi Apple
    • a* nie jest zgodna banana
  • ? - Dopasuj jeden znak w tej pozycji
    • ?n dopasowywuje an, ini on
    • ?n nie jest zgodna ran
  • [ ] - Dopasuj zakres znaków
    • [a-l]ook dopasowywuje book, cooki look
    • [a-l]ook nie jest zgodna took
  • [ ] - Dopasuj określone znaki
    • [bc]ook dopasowania book i cook
    • [bc]ook nie jest zgodna hook
  • `* - Dopasuj dowolny znak jako literał (a nie symbol wieloznaczny)
    • 12`*4 Pasuje 12*4
    • 12`*4 nie jest zgodna 1234

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 odl, wpisz:

Get-ChildItem C:\Techdocs\[a-l]*.txt

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 uciec od symbolu wieloznacznego, tak aby był porównywany przy użyciu wartości znaku literału. Na przykład '*hello`?*' pasuje do ciągów zawierających "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ą znaki 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 wartość właściwości ServiceType zawiera wartość właściwości Interactive.

Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}

W poniższym przykładzie instrukcja zawiera warunek, If 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)"
  }
}

Zobacz też