Powershell ForEach Loop Statement Tutorial példákkal
 ForEach egy PowerShell utasítás, amelyet az adott lista, tömb vagy objektumok, karakterláncok, számok stb. ForEach egy nagyon népszerű hurok mechanizmus, ahol tudjuk használni a különböző esetekben, mint a hurok fájlok, számok, húrok, folyamatok, stb ..  Powershell verzió 4.0 hoz néhány teljesítmény javulást a ForEach hurok.
PowerShell ForEach Syntax
Foreach utasítás a következő szintaxis, ahol használjukITEMCOLLECTION ésCODE-BLOCK.
ForEach(ITEM in COLLECTION){ CODE BLOCK}- az elem egyetlen érték vagy objektum, amely minden iterációban változik.
- gyűjtemény egy tömb, gyűjtemény, értékek listája, vagy tárgyak, mint 1,2,3,4.
- kódblokk az a blokk, ahol a valódi művelet fut, amely általában az elemet használja. Ez a blokk lehet egy vagy több sor.
Foreach egy sor húrok
egy egyszerű módon, tudjuk iterálni az adott listát a string tömb. A “városok” nevű tömb felett iterálunk, amely több városnevet tartalmaz. Minden város nevét az alábbi “echo” paranccsal nyomtatjuk ki.
$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}nézze meg, hogy minden város nevét egyetlen sorban nyomtatják a PowerShell terminálra.
Foreach az előző példában a
számok gyűjteményén keresztül egy adott karakterlánc-listát hurkoltunk át. Azt is iterálni vagy hurok egy listát a számok. Létrehozunk egy numbers nevű tömböt, majd ezt a számtömb minden egyes elemét megismételjük.
$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}h2>$_ usage
 ha néhány parancsmagot használ a parancsmag kimenetének átirányításához az elülső oldalra, akkor minden elemhez vagy objektumhoz ” $ ” – t használhatunk. Például ,ha a “Get-Process”parancsmagot használjuk, minden egyes elem vagy folyamat a $ – hoz lesz hozzárendelve minden iterációban. Megadhatjuk a $.Name attribútumot, majd az alábbiakhoz hasonlóan nyomtathatunk.
PS> Get-Process | ForEach-Object {$_.ProcessName}We can also print multiple attributes in foreach by delimiting them with comma.
PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}Foreach Through Files
We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItem olyan fájlokat és mappákat sorol fel, mint a dir MSDOS parancs. Ezt a kimenetet a Echo paranccsal kell konzolra írni.
foreach($file in Get-ChildItem) {Echo $file}foreach specifikus fájlkiterjesztéseken keresztül, mint például a bat
, kifejezetten felsorolhatjuk a megadott kiterjesztést. A kiterjesztés általában biztosítja a fájltípust, mint a szöveg, avi, mkv, mp3, doc stb. Ebben a példában csak a *.bat vagy Bat fájlokat soroljuk fel.
 foreach($file in Get-ChildItem *.bat) {Echo $file}láthatjuk, hogy csak olyan fájlok lesznek felsorolva, mint atest.batés aautoexec.bat.
Foreach felett CSV fájl
CSV fájlok tárolására használt szöveges adatok strukturált módon. Mi könnyen foreach minden sorban egy CSV fájl, mint az alábbiakban. Ebben a példában elolvasunk egy IP CSV fájlt, majd megadjuk aforeach – nak a Powershell konzol nyomtatásához.
$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}