Delen via


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 vergelijken
    • a* overeenkomsten aA, agen Apple
    • a* komt niet overeen banana
  • ? - Voor tekenreeksen moet u één teken in die positie vergelijken
    • ?n overeenkomsten an, inen on
    • ?n komt niet overeen ran
  • ? - Voor bestanden en mappen komt u overeen met nul of één teken op die positie
    • ?.txt overeenkomsten a.txt en b.txt
    • ?.txt komt niet overeen ab.txt
  • [ ] - Komt overeen met een bereik van tekens
    • [a-l]ook overeenkomsten book, cooken look
    • [a-l]ook komt niet overeen took
  • [ ] - Overeenkomen met specifieke tekens
    • [bc]ook overeenkomsten book en cook
    • [bc]ook komt niet overeen hook
  • `* - Een willekeurig teken vergelijken als een letterlijk teken (geen jokerteken)
    • 12`*4 Matches 12*4
    • 12`*4 komt niet overeen 1234

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)"
  }
}

Zie ook