Ge stöd för jokertecken i cmdlet-parametrar
Ofta måste du utforma en cmdlet för att köra mot en grupp med resurser i stället för mot en enskild resurs. En cmdlet kan till exempel behöva hitta alla filer i ett datalager som har samma namn eller tillägg. Du måste ge stöd för jokertecken när du utformar en cmdlet som ska köras mot en grupp med resurser.
Anteckning
Att använda jokertecken kallas ibland för attglobba.
Windows PowerShell Cmdlets som använder jokertecken
Många Windows PowerShell cmdlets har stöd för jokertecken för sina parametervärden. Till exempel stöder nästan alla cmdlet:ar som har Name
Path
en - eller -parameter jokertecken för dessa parametrar. (Även om de flesta cmdlets som Path
har en parameter också har en parameter som inte stöder LiteralPath
jokertecken.) Följande kommando visar hur ett jokertecken används för att returnera alla cmdlets i den aktuella sessionen vars namn innehåller verbet Get.
Get-Command get-*
Jokertecken som stöds
Windows PowerShell har stöd för följande jokertecken.
Jokertecken | Beskrivning | Exempel | Matchar | Matchar inte |
---|---|---|---|---|
* | Matchar noll eller flera tecken, med början vid den angivna positionen | a* |
A, ag, Apple | |
? | Matchar alla tecken på den angivna positionen | ?n |
An, in, on | Sprang |
[ ] | Matchar ett intervall med tecken | [a-l]ook |
bok, cook, look | nook, tog |
[ ] | Matchar de angivna tecknen | [bn]ook |
bok, nook | cook, look |
När du utformar cmdlets som har stöd för jokertecken, tillåt kombinationer av jokertecken. Följande kommando använder till exempel cmdleten för att hämta alla .txt-filer som finns i mappen c:\Techdocs och som börjar med bokstäverna Get-ChildItem
"a" via "l".
Get-ChildItem c:\techdocs\[a-l]\*.txt
Föregående kommando använder jokertecknet intervall för att ange att filnamnet ska börja med tecknen "a" till "l" och använder jokertecknet som platshållare för tecken mellan den första bokstaven i filnamnet [a-l]
*
och .txt-tillägget.
I följande exempel används ett intervallteckenmönster som exkluderar bokstaven "d" men innehåller alla andra bokstäver från "a" till "f."
Get-ChildItem c:\techdocs\[a-cef]\*.txt
Hantera literaltecken i jokerteckenmönster
Om jokertecknet du anger innehåller literaltecken som inte ska tolkas som jokertecken använder du bakåtklickstecknet ( `
) som ett escape-tecken. När du anger literaltecken i PowerShell-API:et använder du en enkel bakåtklickning. När du anger literaltecken i PowerShell-kommandotolken använder du två backticks.
Följande mönster innehåller till exempel två hakparenteser som måste tas bokstavligen.
När det används i PowerShell-API:et använder du:
- "John Smith ` [*']"
När det används från PowerShell-kommandotolken:
- "John Smith ` ` [* ` ']"
Det här mönstret matchar "John Smith [Marketing]" eller "John Smith [Development]". Exempel:
PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True
PS> "John Smith [Development]" -like "John Smith ``[*``]"
True
Cmdlet-utdata och jokertecken
När cmdlet-parametrar stöder jokertecken genererar åtgärden vanligtvis matrisutdata.
Ibland är det inte meningsfullt att stödja matrisutdata eftersom användaren kanske bara använder ett enda objekt. Set-Location
Cmdleten stöder till exempel inte matrisutdata eftersom användaren bara anger en enda plats. I det här fallet stöder cmdleten fortfarande jokertecken, men den tvingar upplösning till en enda plats.
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för