Articles

Powershell Foreach Loop Statement Tutorial cu exemple

ForEach este o declarație PowerShell folosit pentru a utiliza itera sau buclă pe lista dată, matrice sau colecție de obiecte, siruri de caractere, numere, etc. ForEach este un mecanism de buclă foarte popular în care putem folosi diferite cazuri, cum ar fi buclă prin fișiere, numere, șiruri, procese etc. Powershell versiunea 4.0 aduce unele îmbunătățiri de performanță laForEach bucla.

sintaxa PowerShell ForEach

instrucțiunea Foreach are următoarea sintaxă în care folosimITEMCOLLECTION șiCODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • elementul este o singură valoare sau obiect care se schimbă pe fiecare iterație.
  • colecția este o matrice, colecție, listă de valori sau obiecte precum 1,2,3,4.
  • bloc de cod este blocul în care se execută operațiunea reală care utilizează în general elementul. Acest bloc poate fi linii simple sau multiple.

Foreach printr-o matrice de siruri de caractere

într-un mod simplu, putem itera peste lista dată de matrice șir. Repetăm peste matricea numită” orașe ” care deține mai multe nume de orașe. Vom imprima fiecare nume de oraș cu comanda” echo ” ca mai jos.

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

We se poate vedea că fiecare nume de oraș este imprimat la terminalul PowerShell într-o singură linie.

Foreach printr-o colecție de numere

în exemplul anterior, am buclat peste o listă dată de șiruri de caractere. De asemenea, putem itera sau bucla printr-o listă de numere. Vom crea o matrice numită numbers și vom itera peste fiecare element din această matrice numerică.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach printr-o colecție de numere

$_ usage

când se utilizează unele cmdleturi pentru a redirecționa ieșirea cmdletului către foreach, putem folosi „$” pentru fiecare element sau obiect. De exemplu, dacă folosim cmdletul „Get-Process”, fiecare element sau proces va fi atribuit $ în fiecare iterație. Putem specifica atributul ca nume $.Name și imprima ca mai jos.

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 va lista fișiere și foldere precumdir comanda MSDOS. Această ieșire va fi scrisă în consolă cu comanda Echo.

foreach($file in Get-ChildItem) {Echo $file}
Foreach prin fișiere

foreach prin extensii de fișiere specifice, cum ar fi bat

putem lista în mod specific extensia specificată. Extensia va oferi, în general, tipul de fișier ca text, avi, mkv, mp3, doc etc. În acest exemplu, vom enumera doar*.bat sau fișiere Bat.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach prin extensii de fișiere specifice, cum ar fi Bat

putem vedea că vor fi listate numai fișiere precum test.bat și autoexec.bat.

Foreach peste fișier CSV

fișierele CSV sunt utilizate pentru a stoca date text într-o manieră structurată. Putem cu ușurință foreach în fiecare linie a unui fișier CSV ca mai jos. În acest exemplu, vom citi un fișier CSV IP și vom furniza foreach pentru a imprima consola Powershell.

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *