Articles

Powershell Foreach Loop Statement Tutorial Med Eksempler

ForEach er En PowerShell-setning som brukes til å bruke iterere eller sløyfe over den gitte listen, array eller samling av objekter, strenger, tall, etc. ForEach er en veldig populær loop mekanisme der vi kan bruke forskjellige tilfeller som sløyfe gjennom filer, Tall, Strenger, Prosesser, etc. Powershell versjon 4.0 gir noen ytelsesforbedringer tilForEach loop.

PowerShell Foreach Syntaks

Foreach setning har følgende syntaks der vi bruker ITEMCOLLECTION og CODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ELEMENT er en enkelt verdi eller objekt som endres over hver iterasjon.
  • SAMLING er en matrise, samling, liste over verdier, eller objekter som 1,2,3,4.
  • KODEBLOKK er blokken der den virkelige operasjonen kjører som vanligvis bruker ELEMENT. Denne blokken kan være enkelt eller flere linjer.

Foreach Gjennom En Rekke Strenger

på en enkel måte kan vi iterere over den oppgitte listen over strengarrayet. Vi itererer over arrayet kalt «byer» som inneholder flere bynavn. Vi vil skrive ut hvert bynavn med kommandoen» echo » som nedenfor.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
Foreachgjennom En Rekke Strenger

Vi kan se at hvert bynavn skrives ut til powershell-terminalen i en enkelt linje.

Foreach Gjennom En Samling Av Tall

i forrige eksempel har vi loopet over en gitt liste over strenger. Vi kan også iterere eller sløyfe gjennom en liste over tall. Vi vil lage en matrise som heter numbers og iterere over hvert element i denne nummermatrisen.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Gjennom En Samling Av Tall

$_ usage

når du bruker noen cmdlets for å omdirigere utgangen av cmdlet til foreach, kan vi bruke «$» for hvert element eller objekt. For eksempel, hvis vi bruker «Get-Process» cmdlet hvert element eller prosess vil bli tildelt $ i hver iterasjon. Vi kan angi attributtet som Navn $.Name og skriv ut 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-ChildItem vil liste filer og mapper som dir msdos kommando. Denne utgangen vil bli skrevet til konsoll med kommandoenEcho.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Gjennom Filer

foreach gjennom bestemte filtyper som bat

vi kan spesifikt liste den angitte utvidelsen. Utvidelsen vil generelt gi filtypen som tekst, avi, mkv, mp3, doc etc. I dette eksemplet vil vi bare liste *.bat eller Bat-filer.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach Gjennom Spesifikke Filtyper Som Bat

vi kan se at bare filer som test.bat og autoexec.bat vil bli oppført.

Foreach Over CSV-Fil

CSV-filer brukes til å lagre tekstdata på en strukturert måte. Vi kan enkelt foreach i hver linje AV EN CSV-fil som nedenfor. I dette eksemplet vil vi lese EN IP CSV-fil og gi tilforeach for å skrive Ut Powershell-konsollen.

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *