Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.