Articles

Powershell ForEach Loop Statement Tutorial med exempel

ForEach är ett PowerShell-uttalande som används för att använda iterate eller loop över den givna listan, matrisen eller samlingen av objekt, strängar, siffror etc. ForEach är en mycket populär loop mekanism där vi kan använda olika fall som loop genom filer, siffror, strängar, processer, etc. Powershell version 4.0 ger några prestandaförbättringar tillForEach loop.

PowerShell ForEach Syntax

Foreach uttalande har följande syntax där vi använderITEMCOLLECTION ochCODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • objekt är ett enda värde eller objekt som ändras över varje iteration.
  • samling är en matris, samling, lista över värden eller objekt som 1,2,3,4.
  • kodblock är blocket där den verkliga operationen körs som vanligtvis använder objekt. Detta block kan vara enstaka eller flera rader.

Foreach genom en rad strängar

på ett enkelt sätt kan vi iterera över den givna listan över strängmatrisen. Vi itererar över matrisen med namnet” städer ” som har flera stadsnamn. Vi skriver ut varje stadsnamn med kommandot” echo ” som nedan.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
ForeachThrough en rad strängar

Vi kan se att varje stadsnamn skrivs ut till PowerShell-terminalen i en enda rad.

förvar och en genom en samling siffror

i föregående exempel har vi loopat över en given lista med strängar. Vi kan också iterera eller slinga genom en lista med siffror. Vi kommer att skapa en array med namnet numbers och iterera över varje objekt i denna nummermatris.

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

$_ användning

När du använder vissa cmdlets för att omdirigera produktionen av cmdlet till foreach kan vi använda ”$” för varje objekt eller objekt. Till exempel, om vi använder ”Get-Process” cmdlet varje objekt eller process kommer att tilldelas $ I varje iteration. Vi kan ange attributet som namn $.Name och skriva ut som nedan.

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-ChildItemlistar filer och mappar somdir MSDOS-kommando. Denna utgång kommer att skrivas till konsolen med kommandotEcho.

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

foreach genom specifika filtillägg som Bat

kan vi specifikt lista det angivna tillägget. Tillägget kommer i allmänhet att ge filtypen som text, AVI, mkv, mp3, doc etc. I det här exemplet listar vi bara *.bat eller Bat-filer.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach genom specifika filändelser som Bat

vi kan se att endast filer som test.bat och autoexec.bat kommer att listas.

Foreach över CSV-fil

CSV-filer används för att lagra textdata på ett strukturerat sätt. Vi kan enkelt foreach i varje rad i en CSV-fil som nedan. I det här exemplet läser vi en IP CSV-fil och tillhandahåller foreach för att skriva ut Powershell-konsolen.

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *