PowerShell ForEach-Object

Example

The ForEach-Object cmdlet hasonlóan működik, mint a foreach utasítás, de veszi a bemenet a csővezeték.

alapvető használat

$object | ForEach-Object { code_block}

példa:

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

Foreach-Object két alapértelmezett álneve van, foreach és % (rövidített szintaxis). A leggyakoribb a %, mert foreach összetéveszthető a foreach állítással. Példák:

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

speciális használat

Foreach-Object kiemelkedik az alternatív foreach megoldásokból, mivel ez egy cmdlet, ami azt jelenti, hogy a csővezeték használatára tervezték. Emiatt támogatja a három szkriptblokkot, mint egy cmdlet vagy speciális funkció:

  • Begin: egyszer végrehajtva, mielőtt a csővezetékből érkező elemeket hurkolná. Általában a hurokban használható funkciók létrehozására, változók létrehozására, kapcsolatok megnyitására (adatbázis, web +) stb.
  • folyamat: egyszer végrehajtva tételenként megérkezett a csővezetékből. “Normál” foreach codeblock. Ez az alapértelmezett a fenti példákban, amikor a paraméter nincs megadva.
  • vége: az összes elem feldolgozása után egyszer végrehajtva. Általában a kapcsolatok bezárására, jelentés létrehozására stb.

példa:

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