Obsługiwanie symboli wieloznacznych w parametrach poleceń cmdletSupporting Wildcard Characters in Cmdlet Parameters

Często należy zaprojektować polecenie cmdlet do uruchamiania względem grupy zasobów, a nie do pojedynczego zasobu.Often, you will have to design a cmdlet to run against a group of resources rather than against a single resource. Na przykład polecenie cmdlet może potrzebować znaleźć wszystkie pliki w magazynie danych, które mają taką samą nazwę lub rozszerzenie.For example, a cmdlet might need to locate all the files in a data store that have the same name or extension. Należy zapewnić obsługę symboli wieloznacznych podczas projektowania polecenia cmdlet, które zostanie uruchomione względem grupy zasobów.You must provide support for wildcard characters when you design a cmdlet that will be run against a group of resources.

Uwaga

Używanie symboli wieloznacznych jest czasami określane jako obsługi symboli wieloznacznych.Using wildcard characters is sometimes referred to as globbing.

Polecenia cmdlet programu Windows PowerShell, które używają symboli wieloznacznychWindows PowerShell Cmdlets That Use Wildcards

Wiele poleceń cmdlet programu Windows PowerShell obsługuje symbole wieloznaczne dla wartości parametrów.Many Windows PowerShell cmdlets support wildcard characters for their parameter values. Na przykład niemal każde polecenie cmdlet, które ma Name Path parametr lub obsługuje symbole wieloznaczne dla tych parametrów.For example, almost every cmdlet that has a Name or Path parameter supports wildcard characters for these parameters. (Chociaż większość poleceń cmdlet, które mają Path parametr ma również LiteralPath parametr, który nie obsługuje symboli wieloznacznych). Następujące polecenie pokazuje, w jaki sposób symbol wieloznaczny jest używany do zwracania wszystkich poleceń cmdlet w bieżącej sesji, których nazwa zawiera zlecenie get.(Although most cmdlets that have a Path parameter also have a LiteralPath parameter that does not support wildcard characters.) The following command shows how a wildcard character is used to return all the cmdlets in the current session whose name contains the Get verb.

Get-Command get-*

Obsługiwane symbole wieloznaczneSupported Wildcard Characters

Program Windows PowerShell obsługuje następujące symbole wieloznaczne.Windows PowerShell supports the following wildcard characters.

ZnakuWildcard OpisDescription PrzykładExample Jest zgodny zMatches Nie jest zgodny zDoes not match
* Dopasowuje zero lub więcej znaków, zaczynając od określonej pozycjiMatches zero or more characters, starting at the specified position a* A, AG, AppleA, ag, Apple
?? Dopasowuje dowolny znak na określonej pozycjiMatches any character at the specified position ?n , W, naAn, in, on zostałran
[ ][ ] Dopasowuje zakres znakówMatches a range of characters [a-l]ook książka, Cooka, wyglądbook, cook, look NOOK, trwałonook, took
[ ][ ] Dopasowuje określone znakiMatches the specified characters [bn]ook książka, NOOKbook, nook Cooka, spójrzcook, look

Podczas projektowania poleceń cmdlet, które obsługują symbole wieloznaczne, Zezwalaj na kombinacje symboli wieloznacznych.When you design cmdlets that support wildcard characters, allow for combinations of wildcard characters. Na przykład następujące polecenie używa Get-ChildItem polecenia cmdlet w celu pobrania wszystkich plików. txt, które znajdują się w folderze c:\Techdocs i zaczynają się od liter od "a" do "l".For example, the following command uses the Get-ChildItem cmdlet to retrieve all the .txt files that are in the c:\Techdocs folder and that begin with the letters "a" through "l."

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

Poprzednie polecenie używa symbolu wieloznacznego zakresu, [a-l] Aby określić, że nazwa pliku powinna zaczynać się od znaków od "a" do "l", i używa * znaku wieloznacznego jako symbolu zastępczego dla znaków między pierwszą literą nazwy pliku i rozszerzenia . txt .The previous command uses the range wildcard [a-l] to specify that the file name should begin with the characters "a" through "l" and uses the * wildcard character as a placeholder for any characters between the first letter of the filename and the .txt extension.

W poniższym przykładzie użyto wzorca wieloznacznego zakresu, który wyklucza literę "d", ale zawiera wszystkie inne litery od "a" do "f".The following example uses a range wildcard pattern that excludes the letter "d" but includes all the other letters from "a" through "f."

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

Obsługa znaków literału w wzorcach symboli wieloznacznychHandling Literal Characters in Wildcard Patterns

Jeśli określony wzorzec wieloznaczny zawiera znaki literału, które nie powinny być interpretted jako symbole wieloznaczne, użyj znaku cudzysłowu ( ` ) jako znaku ucieczki.If the wildcard pattern you specify contains literal characters that should not be interpretted as wildcard characters, use the backtick character (`) as an escape character. W przypadku określenia znaków literału int w interfejsie API programu PowerShell należy użyć pojedynczego znacznika.When you specify literal characters int the PowerShell API, use a single backtick. W przypadku określenia znaków literału w wierszu polecenia programu PowerShell należy użyć dwóch znaczników.When you specify literal characters at the PowerShell command prompt, use two backticks.

Na przykład poniższy wzorzec zawiera dwa nawiasy, które muszą być wykonane dosłownie.For example, the following pattern contains two brackets that must be taken literally.

W przypadku użycia w interfejsie API programu PowerShell:When used in the PowerShell API use:

  • "Jan Kowalski ` [*"] ""John Smith `[*`]"

Gdy jest używany z wiersza polecenia programu PowerShell:When used from the PowerShell command prompt:

  • "Jan Kowalski ` ` [* ` "] ""John Smith ``[*``]"

Ten wzorzec pasuje do "Jan Kowalski [Marketing]" lub "Jan Kowalski [programowanie]".This pattern matches "John Smith [Marketing]" or "John Smith [Development]". Na przykład:For example:

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

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

Znaki danych wyjściowych polecenia cmdlet i symboli wieloznacznychCmdlet Output and Wildcard Characters

Gdy parametry poleceń cmdlet obsługują symbole wieloznaczne, operacja zwykle generuje tablicę wyjściową.When cmdlet parameters support wildcard characters, the operation usually generates an array output. Czasami nie ma sensu, aby obsługiwał tablicę wyjściową, ponieważ użytkownik może użyć tylko jednego elementu.Occasionally, it makes no sense to support an array output because the user might use only a single item. Na przykład Set-Location polecenie cmdlet nie obsługuje danych wyjściowych tablicy, ponieważ użytkownik ustawia tylko jedną lokalizację.For example, the Set-Location cmdlet does not support array output because the user sets only a single location. W tym wystąpieniu polecenie cmdlet nadal obsługuje symbole wieloznaczne, ale wymusza rozpoznawanie do pojedynczej lokalizacji.In this instance, the cmdlet still supports wildcard characters, but it forces resolution to a single location.

Zobacz teżSee Also

Pisanie polecenia cmdlet programu Windows PowerShellWriting a Windows PowerShell Cmdlet

Klasa WildcardPatternWildcardPattern Class