PowerShell ForEach-Object

voorbeeld

het ForEach-Object cmdlet werkt op dezelfde manier als het foreach statement, maar haalt de invoer uit de pijplijn.

basisgebruik

$object | ForEach-Object { code_block}

voorbeeld:

$names = @("Any","Bob","Celine","David")$names | ForEach-Object { "Hi, my name is $_!"}

Foreach-Object heeft twee standaard aliassen, foreach en % (afkorting syntaxis). De meest voorkomende is % omdat foreach verward kan worden met het foreach statement. Voorbeelden:

$names | % { "Hi, my name is $_!"} $names | foreach { "Hi, my name is $_!"} 

geavanceerd gebruik

Foreach-Object onderscheidt zich van de alternatieve foreach oplossingen omdat het een cmdlet is, wat betekent dat het ontworpen is om de pijplijn te gebruiken. Hierdoor heeft het ondersteuning voor drie scriptblocks, net als een cmdlet of geavanceerde functie:

  • Begin: eenmaal uitgevoerd voordat je door de items die uit de pijplijn komen lus. Meestal gebruikt voor het maken van functies voor gebruik in de loop, het creĆ«ren van variabelen, het openen van verbindingen (database, web +) etc.
  • proces: eenmaal uitgevoerd per item uit de pijplijn. “Normaal” voor elk codeblok. Dit is de standaard gebruikt in de voorbeelden hierboven wanneer de parameter niet is opgegeven.
  • End: eenmaal uitgevoerd na het verwerken van alle items. Meestal gebruikt om verbindingen te sluiten, een rapport te genereren etc.

voorbeeld:

"Any","Bob","Celine","David" | ForEach-Object -Begin { $results = @()} -Process { #Create and store message $results += "Hi, my name is $_!"} -End { #Count messages and output Write-Host "Total messages: $($results.Count)" $results}