about_Simplified_Syntax

Korte beschrijving

Hierin worden eenvoudigere, natuurlijkere manieren beschreven om filters te scripten voor verzamelingen objecten.

Lange beschrijving

Met vereenvoudigde syntaxis, geïntroduceerd in Windows PowerShell 3.0, kunt u enkele filteropdrachten maken zonder scriptblokken te gebruiken. De vereenvoudigde syntaxis lijkt meer op natuurlijke taal en is voornamelijk nuttig met verzamelingen objecten die worden doorgesluisd naar opdrachten Where-Object en ForEach-Object hun bijbehorende aliassen where en foreach.

U kunt een methode gebruiken voor de leden van een verzameling (meestal een matrix) zonder te verwijzen naar de automatische variabele $_ in een scriptblok.

Houd rekening met de volgende twee aanroepen:

Standaardsyntaxis

dir Cert:\LocalMachine\Root | where { $_.FriendlyName -eq 'Verisign' }
dir Cert:\ -Recurse | foreach { $_.GetKeyAlgorithm() }

Vereenvoudigde syntaxis

Onder de vereenvoudigde syntaxis worden vergelijkingsoperatoren die werken aan leden van objecten in een verzameling behandeld als parameters. U kunt een methode aanroepen voor objecten in een verzameling zonder te verwijzen naar de automatische variabele $_ in een scriptblok. Vergelijk de volgende twee aanroepen met die van het vorige voorbeeld:

dir Cert:\LocalMachine\Root | where FriendlyName -eq 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm

Hoewel beide syntaxis werkt, retourneert de vereenvoudigde syntaxis resultaten zonder te verwijzen naar de automatische variabele $_ in een scriptblok. De methodenaam GetKeyAlgorithm wordt behandeld als een parameter van ForEach-Object. De tweede opdracht retourneert dezelfde resultaten, maar zonder fouten, omdat de vereenvoudigde syntaxis geen resultaten probeert te retourneren voor items waarvoor het opgegeven argument niet van toepassing is.

In dit voorbeeld wordt de Process eigenschap Description doorgegeven als de parameter lidnaam aan de ForEach-Object opdracht. De resultaten zijn beschrijvingen van actieve processen.

Get-Process | foreach Description

In dit voorbeeld wordt de DirectoryInfo methode GetFiles doorgegeven als de parameter lidnaam van de ForEach-Object opdracht.
De methode wordt aangeroepen met de zoekpatroonparameter .*.
De resultaten zijn FileInfo records voor alle verborgen Unix-bestanden in gebruikersmappen.

Get-ChildItem /home -Directory | foreach GetFiles .*

Zie ook