Introducere în bucla PowerShell ForEach

Înțelegerea ForEach Loop din PowerShell, ForEach și forLoop ambele executând aceleași sarcini, ambele sunt destinate manipulării și executării aceluiași fragment de cod în mod repetat. Dacă citiți fiecare element al unui tablou sau poate citi fiecare linie a unui fișier, în astfel de condiții folosim predica. De exemplu, un tablou care conține utilizatori și dorim să verificăm utilizatorul cu numele „Vijay”, deci trebuie să verificăm fiecare element și pentru asta, avem nevoie de o buclă „foreach” și odată ce ieșirea buclei „Vijay” va ieși. Dacă ați fi necesar să vă uitați la atributul de oraș al fiecărui utilizator înainte de a lua o acțiune, puteți utiliza ForEach Loop și puteți efectua lucrări respective în fiecare oraș. ForEach economisește puțină memorie și timp în comparație cu bucla. În PowerShell 4.0 și versiunea ulterioară, Metoda ForEach oferă performanțe și mai rapide.

Sintaxa lui Loop ForEach

Mai jos este sintaxa

foreach ($ in $)
(


)

În sintaxa de mai sus, putem vedea, de fiecare dată, un articol din Actualarray va fi selectat și acel articol va fi prelucrat în bucla foreach. Dacă $ este necompletat sau nu are niciun articol în interiorul său, acesta nu va merge pentru executarea declarațiilor. PowerShell creează variabila $ automat atunci când rulează bucla Foreach. De exemplu, bucla Foreach din următorul exemplu afișează valorile din tabloul $ studenți. În buclă, a fost necesar să scriem logica pentru a verifica dacă tabloul este gol sau nu, bucla foreach execută blocuri de instrucțiuni dacă există vreun element din interiorul tabloului.

Cod:

$students = ""
PS /home/ranjan> foreach ($student in $students)
(
Write-Host $student
)
output nothing, which means checking of array elements attributes are done internally by foreach loops.
$students = "ajay", "vijay", "ranjan", "akash", ”vikash”
foreach ($student in $students)
(
Write-Host $student
)

Ecrane de ieșire și cod:

Diagrama de flux pentru bucla PowerShell ForEach

Mai jos este diagrama de flux pentru bucla PowerShell ForEach:

Explicația diagramei de flux de mai sus: Diagrama de flux de mai sus reprezintă foarte clar fluxul, odată ce execuția începe mai întâi, va verifica datele (verificând dacă elementul este acolo în tablou) dacă bucla goală se va opri. Dar dacă Datele există, va continua executarea și va executa instrucțiunea 1, declarația 2, instrucțiunea 3 până la ultimele date ale tabloului. Odată ce Array obțineți execuția buclei goale.

ieşire:

Explicația rezultatului de mai sus: ecranul de mai sus arată, dacă au fost două atribute în cadrul tabloului, acesta a fost tipărit de două ori, salut, dar dacă am făcut $ studenți ca un tablou gol, nu există tipărire de salut, asta înseamnă că în cazul oricărui atribut este disponibil în interiorul $ matricea studenților decât va executa blocul de instrucțiuni, altfel nu se execută.

Cum funcționează ForEach Loop în PowerShell?

Să presupunem că avem 4 elemente și dorim să înmulțim fiecare număr cu cinci. Să presupunem că avem $ a, $ b, $ c, $ d și trebuie să înmulțim fiecare cu 5, deci ceea ce vom face, uitați mai jos exemplu:

Cod simplu:

$a=2, $b=4, $c=9, $d=5
$a * 5 =10, $b * $5=20, $c * 5=45, $d*5=25

De aici avem rezultatul nostru. Dar a fost bine până când vom avea doar 4 elemente de înmulțit cu 5, să presupunem că vor fi 10000 de elemente care trebuie să se înmulțească cu 5, atunci ar fi o sarcină foarte obositoare să scriem pentru fiecare.

Deci, care ar fi o soluție ușoară pentru aceasta? Tot ce trebuie să facem este să creăm un tablou cu toate elementele noastre și să trecem tabloul prin predach și să înmulțim fiecare element cu 5. Pentru a înmulți numărul cinci la fiecare dintre elementele din tablou, trebuie să parcurgem tabloul folosind comanda ForEach.

Iată scriptul complet:

Cod:

$a = 2, $b = 4, $c = 9, $d =5
$f = $a, $b, $c, $d
Foreach ($i in $f)
(
$i * 5
)

ieşire:

Explicarea codului de mai sus: În exemplele de mai sus putem vedea, am definit una pe alta variabila $ f și i-am atribuit toate cele 4 variabile, ceea ce o face o matrice. În cele din urmă, îl trecem din bucla foreach care ne-a dat un rezultat de 10, 20, 45, 25. În acest fel ne facem viața mai ușoară, întrucât în ​​viața reală ar exista lacuri de înregistrări care trebuie modificate, astfel încât nu putem face asta unul câte unul, așa că folosim bucla foreach pentru a face față acestor aspecte. Doar rulați o dată și modificați cât mai multe înregistrări doriți.

Exemple în bucla PowerShell ForEach

Mai jos este exemplul în bucla PowerShell ForEach:

Exemplul # 1

Buclați-vă printr-o serie de șiruri care conțin numele elevilor și găsiți lungimea fiecărui șir în interiorul tabloului.

Cod:

$students = @("Ranjan", "Ajay", ”Vijay", "Sujit", "John", "Rakesh", ”Hari”)
foreach ($student in $students) (
"$student = " + $student.length
)

Ieșire: Ranjan = 6, Ajay = 4, Vijay = 5, Sujit = 5, Ioan = 4, Rakesh = 6, Hari = 4.

Exemplul # 2

Permiteți-mi să vă dau un exemplu din viața reală, la examene, ați văzut 30 de note din 100 obișnuite să fie note de trecere. Așadar, să presupunem că există lipsuri de student și există o regulă dacă un student obține 27 de note îi dă 30 de note, înseamnă că adaugă 3 note în plus în cele 27 de note ale sale. Așa că ne bucurăm printr-o serie de note ale studenților și adăugăm 3 note dacă notele lor sunt 27 și le lăsăm să treacă la examene, deoarece 30 de note sunt note de trecere.

Cod:

$marks (34, 39, 49, 12, 27, 80, 23, 88, 27)
foreach ($mark in $marks) (
if ($mark -eq 27) ( $mark+3 ) else( $num)
)

Rezultat: Au fost doi studenți, dar verificarea manuală în lacuri de studenți pentru 27 de note a fost o sarcină cam obositoare pe care am rezolvat-o.

Exemplul # 3

Un alt exemplu, Găsiți toate numerele între 1 și 100, care sunt complet divizibile cu 10.

Cod:

$numbers (1..100)
foreach ($number in $numbers)
(
if ( -not ($number % 10) )
(
"$number is totally divisible by 10"
)
)
10 is totally divisible by 10
20 is totally divisible by 10
30 is totally divisible by 10
40 is totally divisible by 10
50 is totally divisible by 10
60 is totally divisible by 10
70 is totally divisible by 10
80 is totally divisible by 10
90 is totally divisible by 10
100 is totally divisible by 10

ieşire:

Concluzie

În concluzie, o instrucțiune buclă foreach ne permite să executăm o declarație sau un grup de declarații de mai multe ori, împreună cu verificarea disponibilității elementelor din tablou, ceea ce înseamnă a rula următoarea instrucțiune dacă există elemente. Buclele de foreach rulează numai dacă există elemente în interiorul tabloului, ceea ce îl face diferit decât pentru buclă.

Articole recomandate

Acesta este un ghid pentru bucla PowerShell ForEach. Aici vom discuta despre cum funcționează ForEach Loop în PowerShell?, cu diferite exemple. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Pentru Bucla în R
  2. Ce este PowerShell
  3. Utilizări de Powershell
  4. Cum se instalează PowerShell
  5. Array în PowerShell | Exemple

Categorie: