Ondersteuning voor jokertekens in de cmdlet-parameters

Vaak moet u een cmdlet ontwerpen die wordt uitgevoerd op een groep resources in plaats van op één resource. Een cmdlet moet bijvoorbeeld alle bestanden in een gegevensopslag zoeken die dezelfde naam of extensie hebben. U moet ondersteuning bieden voor jokertekens wanneer u een cmdlet ontwerpt die wordt uitgevoerd voor een groep resources.

Notitie

Het gebruik van jokertekens wordt ook wel globbing genoemd.

Windows PowerShell Cmdlets die gebruikmaken van jokertekens

Veel Windows PowerShell-cmdlets ondersteunen jokertekens voor hun parameterwaarden. Zo ondersteunt bijna elke cmdlet met een Name parameter of Path jokertekens voor deze parameters. (Hoewel de meeste cmdlets met een parameter ook een Path parameter hebben die geen LiteralPath jokertekens ondersteunt.) De volgende opdracht laat zien hoe een jokerteken wordt gebruikt voor het retourneren van alle cmdlets in de huidige sessie waarvan de naam de opdracht Get bevat.

Get-Command get-*

Ondersteunde jokertekens

Windows PowerShell ondersteunt de volgende jokertekens.

Wildcard Beschrijving Voorbeeld Komt overeen met Komt niet overeen met
* Komt overeen met nul of meer tekens, beginnend bij de opgegeven positie a* A, ag, Apple
? Komt overeen met een teken op de opgegeven positie ?n An, in, on Liep
[ ] Komt overeen met een bereik van tekens [a-l]ook boek, cook, look nook, heeft
[ ] Komt overeen met de opgegeven tekens [bn]ook boek, nook cook, look

Wanneer u cmdlets ontwerpt die jokertekens ondersteunen, kunt u combinaties van jokertekens toestaan. De volgende opdracht gebruikt bijvoorbeeld de cmdlet om alle .txt-bestanden op te halen die zich in de map c:\Techdocs bevinden en die beginnen met de Get-ChildItem letters 'a' tot en met 'l'.

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

De vorige opdracht maakt gebruik van het jokerteken bereik om op te geven dat de bestandsnaam moet beginnen met de tekens 'a' tot en met 'l' en het jokerteken gebruikt als tijdelijke aanduiding voor tekens tussen de eerste letter van de bestandsnaam en de [a-l] * extensie .txt.

In het volgende voorbeeld wordt een jokertekenbereikpatroon gebruikt dat de letter 'd' uitsluit, maar alle andere letters van 'a' tot en met 'f' bevat.

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

Letterlijke tekens in jokertekenpatronen verwerken

Als het jokerteken dat u opgeeft letterlijke tekens bevat die niet als jokertekens moeten worden geïnterpreteerd, gebruikt u het backtick-teken ( ) als ` een escape-teken. Wanneer u letterlijke tekens opgeeft in de PowerShell-API, gebruikt u één backtick. Wanneer u letterlijke tekens opgeeft bij de PowerShell-opdrachtprompt, gebruikt u twee backticks.

Het volgende patroon bevat bijvoorbeeld twee haakjes die letterlijk moeten worden genomen.

Wanneer u gebruikt in de PowerShell-API, gebruikt u:

  • "John Smith ` [*']"

Bij gebruik vanaf de PowerShell-opdrachtprompt:

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

Dit patroon komt overeen met 'John Smith [Marketing]' of 'John Smith [Development]'. Bijvoorbeeld:

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

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

Cmdlet-uitvoer en jokertekens

Wanneer cmdlet-parameters jokertekens ondersteunen, genereert de bewerking meestal een matrixuitvoer. Soms is het niet zinvol om een matrixuitvoer te ondersteunen, omdat de gebruiker slechts één item kan gebruiken. De Set-Location cmdlet biedt bijvoorbeeld geen ondersteuning voor matrixuitvoer omdat de gebruiker slechts één locatie in stelt. In dit geval ondersteunt de cmdlet nog steeds jokertekens, maar wordt de oplossing op één locatie gedwongen.

Zie ook

Een Windows PowerShell-cmdlet schrijven

WildcardPattern-klasse