Delen via


Ondersteuning voor jokertekens in de cmdlet-parameters

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

Notitie

Het gebruik van jokertekens wordt soms globbinggenoemd.

Windows PowerShell-cmdlets die jokertekens gebruiken

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

Get-Command get-*

Ondersteunde jokertekens

Windows PowerShell ondersteunt de volgende jokertekens.

Wildcard Beschrijving Voorbeeld Overeenkomsten Komt niet overeen
* Komt overeen met nul of meer tekens, beginnend bij de opgegeven positie a* A, ag, Apple
? Komt overeen met een willekeurig teken op de opgegeven positie ?n An, in, on Liep
[ ] Komt overeen met een reeks tekens [a-l]ook boek, kok, look nook, nam
[ ] Komt overeen met de opgegeven tekens [bn]ook boek, nook koken, kijken

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

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

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

In het volgende voorbeeld wordt een bereik-jokertekenpatroon 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 verwerken in jokertekenpatronen

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

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

Wanneer deze wordt gebruikt in de PowerShell-API, gebruikt u het volgende:

  • "John Smith "[*"]"

Wanneer u deze opdrachtprompt gebruikt vanuit de PowerShell-opdrachtprompt:

  • "John Smith ""[*"]"

Dit patroon komt overeen met 'John Smith [Marketing]' of 'John Smith [Ontwikkeling]'. Voorbeeld:

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. Af en toe is het niet zinvol om een matrixuitvoer te ondersteunen, omdat de gebruiker slechts één item kan gebruiken. De cmdlet Set-Location biedt bijvoorbeeld geen ondersteuning voor matrixuitvoer omdat de gebruiker slechts één locatie instelt. In dit geval ondersteunt de cmdlet nog steeds jokertekens, maar dwingt de oplossing tot één locatie.

Zie ook

Een Windows PowerShell-cmdlet schrijven

wildcardpattern