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-LocationCmdleten 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

Skriva en Windows PowerShell-cmdlet

WildcardPattern-klass