Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Często należy zaprojektować polecenie cmdlet w celu uruchomienia względem grupy zasobów, a nie pojedynczego zasobu. Na przykład polecenie cmdlet może wymagać zlokalizowania wszystkich plików w magazynie danych o tej samej nazwie lub rozszerzeniu. Należy zapewnić obsługę symboli wieloznacznych podczas projektowania polecenia cmdlet, które będzie uruchamiane względem grupy zasobów.
Uwaga
Używanie symboli wieloznacznych jest czasami nazywane symbolami wieloznacznymi.
Polecenia cmdlet programu Windows PowerShell korzystające z symboli wieloznacznych
Wiele poleceń cmdlet programu Windows PowerShell obsługuje symbole wieloznaczne dla ich wartości parametrów. Na przykład prawie każde polecenie cmdlet z parametrem Name
lub Path
obsługuje symbole wieloznaczne dla tych parametrów. (Mimo że większość poleceń cmdlet z parametrem Path
ma również parametr LiteralPath
, który nie obsługuje symboli wieloznacznych). Poniższe polecenie pokazuje, jak symbol wieloznaczny jest używany do zwracania wszystkich poleceń cmdlet w bieżącej sesji, której nazwa zawiera zlecenie Get.
Get-Command get-*
Obsługiwane symbole wieloznaczne
Program Windows PowerShell obsługuje następujące symbole wieloznaczne.
Symbol wieloznaczny | Opis | Przykład | Mecze | Nie pasuje |
---|---|---|---|---|
* | Dopasuje zero lub więcej znaków, zaczynając od określonej pozycji | a* |
A, ag, Apple | |
? | Pasuje do dowolnego znaku w określonej pozycji | ?n |
An, in, on | Prowadził |
[ ] | Pasuje do zakresu znaków | [a-l]ook |
książka, kucharz, wygląd | nook, wziął |
[ ] | Pasuje do określonych znaków | [bn]ook |
książka, nook | kucharz, spójrz |
Podczas projektowania poleceń cmdlet obsługujących symbole wieloznaczne zezwalaj na kombinacje symboli wieloznacznych. Na przykład następujące polecenie używa polecenia cmdlet Get-ChildItem
, aby pobrać wszystkie pliki .txt, które znajdują się w folderze C:\Techdocs i zaczynają się od liter "a" za pośrednictwem "l".
Get-ChildItem C:\techdocs\[a-l]\*.txt
Poprzednie polecenie używa wieloznacznych symboli wieloznacznych zakresu [a-l]
, aby określić, że nazwa pliku powinna zaczynać się od znaków "a" przez "l" i używa symbolu wieloznakowego *
jako symbol zastępczy dla wszystkich znaków między pierwszą literą nazwy pliku a rozszerzeniem .txt.
W poniższym przykładzie użyto wzorca z symbolami wieloznacznymi zakresu, który wyklucza literę "d", ale zawiera wszystkie pozostałe litery od "a" do "f".
Get-ChildItem C:\techdocs\[a-cef]\*.txt
Obsługa znaków literału w wzorcach wieloznacznych
Jeśli określony wzorzec wieloznaczny zawiera znaki literału, które nie powinny być interpretowane jako znaki wieloznaczne, użyj znaku backtick (`
) jako znaku ucieczki. Po określeniu znaków literału int interfejsu API programu PowerShell użyj pojedynczego backtick. Po określeniu znaków literału w wierszu polecenia programu PowerShell użyj dwóch backticksów.
Na przykład poniższy wzorzec zawiera dwa nawiasy, które należy wziąć dosłownie.
W przypadku użycia w interfejsie API programu PowerShell:
- "John Smith '[*']"
W przypadku użycia 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 nie ma sensu obsługiwać danych wyjściowych tablicy, ponieważ użytkownik może używać tylko jednego elementu. Na przykład polecenie cmdlet Set-Location
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 rozpoznawanie pojedynczej lokalizacji.