about_Simplified_Syntax

Korte beschrijving

Beschrijft eenvoudigere, natuurlijkere manieren om filters voor verzamelingen objecten te scripten.

Lange beschrijving

Met vereenvoudigde syntaxis, geïntroduceerd in Windows PowerShell 3.0, kunt u enkele filteropdrachten bouwen zonder scriptblokken te gebruiken. De vereenvoudigde syntaxis lijkt meer op natuurlijke taal en is Where-Object ForEach-Object voornamelijk nuttig met verzamelingen objecten die worden doorspijpt in opdrachten en de 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 vergelijkingsoperators die werken op 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 werken, retourneert de vereenvoudigde syntaxis resultaten zonder te verwijzen naar de automatische variabele $_ in een scriptblok. De naam van de GetKeyAlgorithm methode wordt behandeld als een parameter van ForEach-Object. De tweede opdracht retourneert dezelfde resultaten, maar zonder fouten, omdat de vereenvoudigde syntaxis niet probeert resultaten te retourneren voor items waarvoor het opgegeven argument niet van toepassing is.

In dit voorbeeld wordt de Process eigenschap Description doorgegeven als de parameter voor de lidnaam voor 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 voor de lidnaam van de ForEach-Object opdracht.
De methode wordt aangeroepen met de zoekpatroonparameter .*.
De resultaten zijn FileInfo records voor alle verborgen bestanden in Unix-stijl in de startdirecties van gebruikers.

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

Zie ook