Obsługiwanie symboli wieloznacznych w parametrach poleceń cmdlet

Często trzeba zaprojektować polecenie cmdlet do uruchamiania względem grupy zasobów, a nie dla pojedynczego zasobu. Na przykład polecenie cmdlet może wymagać zlokalizowania wszystkich plików w magazynie danych o takiej samej nazwie lub rozszerzeniu. Podczas projektowania polecenia cmdlet, które będzie uruchamiane dla grupy zasobów, należy zapewnić obsługę symboli wieloznacznych.

Uwaga

Używanie symboli wieloznacznych jest czasami określane jako symbol wieloznaczny.

Windows PowerShell Polecenia cmdlet, które używają symboli wieloznacznych

Wiele Windows PowerShell cmdlet obsługuje symbole wieloznaczne dla ich wartości parametrów. Na przykład niemal każde polecenie cmdlet, które ma parametr lub obsługuje symbole Name Path wieloznaczne dla tych parametrów. (Chociaż większość polecenia cmdlet, które mają parametr, ma również Path LiteralPath parametr, który nie obsługuje symboli wieloznacznych). Następujące polecenie pokazuje, jak symbol wieloznaczny jest używany do zwracania wszystkich poleceń cmdlet w bieżącej sesji, których nazwa zawiera czasownik Get.

Get-Command get-*

Obsługiwane symbole wieloznaczne

Windows PowerShell obsługuje następujące symbole wieloznaczne.

Symbol wieloznaczny Opis Przykład Jest zgodny z Nie jest zgodny z
* Dopasowuje zero lub więcej znaków, zaczynając od określonej pozycji a* A, ag, Apple
? Dopasowuje dowolny znak w określonej pozycji ?n An, in, on Prowadził
[ ] Dopasowuje zakres znaków [a-l]ook book, cook, look nook, took
[ ] Dopasowuje określone znaki [bn]ook book, nook cook, look

Podczas projektowania polecenia cmdlet, które obsługują symbole wieloznaczne, zezwalaj na kombinacje symboli wieloznacznych. Na przykład następujące polecenie używa polecenia cmdlet do pobrania wszystkich plików .txt, które znajdują się w folderze c:\Techdocs i które zaczynają się od Get-ChildItem liter od "a" do "l".

Get-ChildItem c:\techdocs\[a-l]\*.txt

Poprzednie polecenie używa symbolu wieloznacznego zakresu, aby określić, że nazwa pliku powinna zaczynać się od znaków od "a" do "l" i używa symbolu wieloznacznego jako symbolu zastępczego dla wszystkich znaków między pierwszą literą nazwy pliku a [a-l] * rozszerzeniem.txt.

W poniższym przykładzie użyto wzorca z symbolami wieloznacznych zakresu, który wyklucza literę "d", ale obejmuje wszystkie inne litery od "a" do "f".

Get-ChildItem c:\techdocs\[a-cef]\*.txt

Obsługa znaków literałów we wzorcach wieloznacznych

Jeśli określony wzorzec z symbolami wieloznacznymi zawiera znaki literału, które nie powinny być interpretowane jako symbole wieloznaczne, użyj znaku podkreślenia ( ) jako ` znaku ucieczki. Podczas określania znaków literału w interfejsie API programu PowerShell użyj pojedynczego znaków wstecz. Podczas określania znaków literału w wierszu polecenia programu PowerShell użyj dwóch znaków wstecz.

Na przykład poniższy wzorzec zawiera dwa nawiasy, które muszą być zajęte dosłownie.

W przypadku użycia w interfejsie API programu PowerShell użyj:

  • "John Smith ` [*']"

Gdy jest używany z wiersza polecenia programu PowerShell:

  • "John Smith ` ` [* ` ']"

Ten wzorzec pasuje do "John Smith [Marketing]" lub "John Smith [Development]". Na przykład:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Dane wyjściowe polecenia cmdlet i symbole wieloznaczne

Gdy parametry polecenia cmdlet obsługują symbole wieloznaczne, operacja zwykle generuje dane wyjściowe tablicy. Czasami obsługa danych wyjściowych tablicy nie ma sensu, ponieważ użytkownik może używać tylko jednego elementu. Na przykład polecenie Set-Location cmdlet nie obsługuje danych wyjściowych tablicy, ponieważ użytkownik ustawia tylko jedną lokalizację. W tym przypadku polecenie cmdlet nadal obsługuje symbole wieloznaczne, ale wymusza rozdzielczość do pojedynczej lokalizacji.

Zobacz też

Pisanie polecenia cmdlet programu Windows PowerShell

WildcardPattern, klasa