about_Wildcards
Korte beschrijving
Hierin wordt beschreven hoe u jokertekens gebruikt in PowerShell.
Lange beschrijving
Jokertekens vertegenwoordigen een of meer tekens. U kunt ze gebruiken om woordpatronen te maken in opdrachten. Jokertekenexpressies worden gebruikt met de -like
operator of met een parameter die jokertekens accepteert.
Als u bijvoorbeeld alle bestanden in de C:\Techdocs
map wilt vergelijken met een .ppt
bestandsnaamextensie, typt u:
Get-ChildItem C:\Techdocs\*.ppt
In dit geval vertegenwoordigt het jokerteken sterretje (*
) alle tekens die vóór de .ppt
bestandsnaamextensie worden weergegeven.
Jokertekenexpressies zijn eenvoudiger dan reguliere expressies. Zie about_Regular_Expressions voor meer informatie.
PowerShell ondersteunt de volgende jokertekens:
*
- Nul of meer tekens vergelijkena*
overeenkomstenaA
,ag
enApple
a*
komt niet overeenbanana
?
- Voor tekenreeksen moet u één teken in die positie vergelijken?n
overeenkomstenan
,in
enon
?n
komt niet overeenran
?
- Voor bestanden en mappen komt u overeen met nul of één teken op die positie?.txt
overeenkomstena.txt
enb.txt
?.txt
komt niet overeenab.txt
[ ]
- Komt overeen met een bereik van tekens[a-l]ook
overeenkomstenbook
,cook
enlook
[a-l]ook
komt niet overeentook
[ ]
- Overeenkomen met specifieke tekens[bc]ook
overeenkomstenbook
encook
[bc]ook
komt niet overeenhook
`*
- Een willekeurig teken vergelijken als een letterlijk teken (geen jokerteken)12`*4
Matches12*4
12`*4
komt niet overeen1234
U kunt meerdere jokertekens opnemen in hetzelfde woordpatroon. Als u bijvoorbeeld tekstbestanden wilt zoeken met namen die beginnen met de letters a tot en met l, typt u:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Notitie
Jokertekens voor bestandssysteemitems werken anders dan voor tekenreeksen. Zie de sectie Opmerkingen van de methode DirectoryInfo.GetFiles(String, EnumerationOptions) voor meer informatie.
Er kunnen gevallen zijn waarin u het letterlijke teken wilt vergelijken in plaats van het als jokerteken te behandelen. In dergelijke gevallen kunt u het teken backtick (`
) gebruiken om het jokerteken te ontsnappen, zodat het wordt vergeleken met behulp van de letterlijke tekenwaarde. Komt bijvoorbeeld '*hello`?*'
overeen met tekenreeksen met 'hallo?'.
Veel cmdlets accepteren jokertekens in parameterwaarden. In het Help-onderwerp voor elke cmdlet wordt beschreven welke parameters jokertekens accepteren. Voor parameters die jokertekens accepteren, is het gebruik van jokertekens niet hoofdlettergevoelig.
U kunt jokertekens gebruiken in opdrachten en scriptblokken, zoals het maken van een woordpatroon dat eigenschapswaarden vertegenwoordigt. Met de volgende opdracht worden bijvoorbeeld services opgehaald waarin de eigenschapswaarde ServiceType Interactive bevat.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
In het volgende voorbeeld bevat de If
instructie een voorwaarde die jokertekens gebruikt om eigenschapswaarden te zoeken. Als de beschrijving van het herstelpunt PowerShell bevat, voegt de opdracht de waarde van de eigenschap CreationTime van het herstelpunt toe aan een logboekbestand.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}