Articles

Powershell ForEach Loop Statement Tutorial with Examples

ForEach is a PowerShell statement used to use iterate or loop over the given list, array or collection of the objects, strings, numbers, etc. ForEach on erittäin suosittu silmukkamekanismi, jossa voimme käyttää erilaisia tapauksia, kuten loop läpi tiedostoja, numeroita,merkkijonoja, prosesseja, jne. Powershell versio 4.0 tuo joitain suorituskykyparannuksia ForEach loopiin.

PowerShell Foreachin syntaksilla

Foreachin lauseella on seuraava syntaksi, jossa käytetään ITEMCOLLECTION ja CODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • kohde on yksittäinen arvo tai objekti, joka muuttuu jokaisessa iteraatiossa.
  • kokoelma on joukko, kokoelma, arvojen luettelo tai objekteja, kuten 1,2,3,4.
  • KOODILOHKO on lohko, jossa reaalioperaatio suoritetaan ja jossa käytetään yleensä kohdetta. Tämä lohko voi olla yksi tai useita rivejä.

Foreach kautta joukko merkkijonoja

yksinkertaisella tavalla, voimme iteroida yli annetun luettelon merkkijono joukko. Toistamme yli array nimeltä ”kaupungit”, joka sisältää useita kaupungin nimiä. Tulostamme jokaisen kaupungin nimen komennolla ”echo”kuten alla.

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

voimme katso, että jokaisen kaupungin nimi on painettu PowerShell-päätteeseen yhdellä rivillä.

Foreach kautta kokoelma numeroita

edellisessä esimerkissä, olemme looped yli tietyn luettelon merkkijonoja. Voimme myös iteroida tai silmukoida numeroluettelon läpi. Luomme joukon, jonka nimi on numbers, ja iteroimme jokaisen alkionkin tässä numeroryhmässä.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach kautta Numerokokoelma

H2>$_ käyttö

käytettäessä joitakin cmdlet: iä ohjaamaan cmdlet: n ulostuloa keulaan, Voimme käyttää ”$” jokaiselle esineelle tai esineelle. Esimerkiksi, jos käytämme ”Get-Process” cmdlet jokaiselle alkiolle tai prosessille annetaan $ jokaisessa iteraatiossa. Voimme määrittää attribuutin kuten nimi $.Name ja tulostaa kuten alla.

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 luettelee tiedostoja ja kansioita, kuten dir MSDOS-komento. Tämä tuloste kirjoitetaan konsolille Echo – komennolla.

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

foreach erityisten tiedostopäätteiden, kuten bat

kautta voimme erikseen luetella määritetyn laajennuksen. Laajennus yleensä antaa tiedostotyyppi kuten teksti, avi, mkv, mp3, doc jne. Tässä esimerkissä listataan vain *.bat tai Bat-tiedostot.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach erityisten Tiedostopäätteiden, kuten Bat

voimme nähdä, että listataan vain sellaiset tiedostot kuin test.batjaautoexec.bat.

Foreach yli CSV-tiedoston

CSV-tiedostoja käytetään tallentamaan tekstidataa jäsennellysti. Voimme helposti foreach kunkin rivin CSV-tiedoston kuten alla. Tässä esimerkissä luemme IP CSV-tiedoston ja annamme foreach tulostamaan Powershell-konsolin.

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *