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}