Dela via


Ge stöd för jokertecken i cmdlet-parametrar

Ofta måste du utforma en cmdlet för att köras mot en grupp resurser i stället för mot en enda 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.

Anmärkning

Att använda jokertecken kallas ibland globbande.

Windows PowerShell-cmdletar som använder jokertecken

Många Windows PowerShell-cmdletar stöder jokertecken för sina parametervärden. Till exempel stöder nästan varje cmdlet som har en Name- eller Path-parameter jokertecken för dessa parametrar. (Även om de flesta cmdletar som har en Path parameter också har en LiteralPath parameter som inte stöder jokertecken.) Följande kommando visar hur ett jokertecken används för att returnera alla cmdletar i den aktuella sessionen vars namn innehåller get-verbet.

Get-Command get-*

Jokertecken som stöds

Windows PowerShell stöder följande jokertecken.

Wildcard Beskrivning Exempel Tändstickor Matchar inte
* Matchar noll eller fler tecken med början vid den angivna positionen a* A, ag, Apple
? Matchar alla tecken på den angivna positionen ?n En, in, på rann
[ ] Matchar ett intervall med tecken [a-l]ook bok, kock, titta nook, tog
[ ] Matchar de angivna tecknen [bn]ook bok, skrymslen laga mat, titta

När du utformar cmdletar som stöder jokertecken kan du använda kombinationer av jokertecken. Följande kommando använder till exempel cmdleten Get-ChildItem för att hämta alla .txt filer som finns i mappen C:\Techdocs och som börjar med bokstäverna "a" via "l".

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

Föregående kommando använder intervallet jokertecken [a-l] för att ange att filnamnet ska börja med tecknen "a" till "l" och använder * jokertecken som platshållare för alla tecken mellan den första bokstaven i filnamnet och .txt filnamnstillägget.

I följande exempel används ett jokerteckenmönster för intervall som exkluderar bokstaven "d" men som innehåller alla andra bokstäver från "a" till "f".

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

Hantera literaltecken i jokerteckenmönster

Om jokerteckenmönstret som du anger innehåller literaltecken som inte ska tolkas som jokertecken använder du backtick-tecknet (`) som ett escape-tecken. När du anger literaltecken i PowerShell-API:et använder du en enda backtick. 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änds:

  • "John Smith '[*']"

När den används från PowerShell-kommandotolken:

  • "John Smith ''[*'']"

Det här mönstret matchar "John Smith [Marketing]" eller "John Smith [Development]". Till exempel:

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

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

Cmdlet-utdata och jokertecken

När cmdletparametrar stöder jokertecken genererar åtgärden vanligtvis en matrisutdata. Ibland är det inte meningsfullt att stödja en matrisutdata eftersom användaren kanske bara använder ett enda objekt. Cmdleten Set-Location stöder till exempel inte matrisutdata eftersom användaren endast 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 Class