Articles

foreach Loop Statement Tutorial med eksempler

ForEach er en Kraftshell erklæring, der bruges til at bruge iterate eller loop over den givne liste, array eller samling af objekter, strenge, tal osv. ForEach er en meget populær loop-mekanisme, hvor vi kan bruge forskellige sager som loop gennem filer, tal, strenge, processer osv. 4.0 bringer nogle forbedringer af ydeevnen tilForEach loop.

Strømshell foreach syntaks

Foreach-erklæring har følgende syntaks, hvor vi brugerITEMCOLLECTION ogCODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • element er en enkelt værdi eller objekt, der ændres over hver iteration.
  • samling er en array, samling, liste over værdier eller objekter som 1,2,3,4.
  • kodeblok er den blok, hvor den virkelige operation kører, som generelt bruger element. Denne blok kan være enkelt eller flere linjer.

Foreach gennem en række strenge

på en enkel måde kan vi gentage over den givne liste over strengarrayet. Vi gentager over arrayet “cities”, der indeholder flere bynavne. Vi udskriver hvert bynavn med kommandoen “echo” som nedenfor.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
Foreachgrough an Array of Strings

Vi kan se, at hvert bynavn udskrives til strømshellterminalen i en enkelt linje.

Foreach gennem en samling af tal

i det foregående eksempel har vi sløjfet over en given liste over strenge. Vi kan også gentage eller sløjfe gennem en liste over tal. Vi opretter et array med navnet numbers og gentager over hvert element i dette nummer array.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach gennem en samling af tal

$_ usage

når du bruger nogle cmdlets til at omdirigere output fra cmdlet til foreach, kan vi bruge “$” for hvert element eller objekt. For eksempel, hvis vi bruger “Get-Process” cmdlet hvert element eller proces vil blive tildelt $ i hver iteration. Vi kan angive attributten som navn $.Name og udskrive som nedenfor.

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage

We can also print multiple attributes in foreach by delimiting them with comma.

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage

Foreach Through Files

We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItemvil liste Filer og mapper somdir MSDOS kommando. Denne udgang vil blive skrevet til konsol med kommandoenEcho.

foreach($file in Get-ChildItem) {Echo $file}
Foreach gennem filer

foreach gennem specifikke filtypenavne som Bat

Vi kan specifikt liste den angivne udvidelse. Udvidelsen vil generelt give filtypen som tekst, avi, mkv, mp3, doc osv. I dette eksempel vil vi kun liste *.bat eller Bat-filer.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach gennem specifikke filudvidelser som Bat

Vi kan se, at kun filer somtest.batogautoexec.bat vil blive opført.

Foreach Over CSV-fil

CSV-filer bruges til at gemme tekstdata på en struktureret måde. Vi kan nemt foreach i hver linje i en CSV-fil som nedenfor. I dette eksempel læser vi en IP CSV-fil og leverer til foreach for at udskrive Strømshell-konsol.

$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *