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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla