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
Feedback
Feedback verzenden en weergeven voor