PowerShell voor elke lus - Hoe werkt ForEach Loop in PowerShell?

Inhoudsopgave:

Anonim

Inleiding tot PowerShell ForEach Loop

ForEach Loop begrijpen in PowerShell, ForEach en forLoop die beide dezelfde taken uitvoeren, beide zijn bedoeld om hetzelfde stuk code herhaaldelijk te manipuleren en uit te voeren. Als u elk element van een array aan het lezen bent, of het kan elke regel van een bestand lezen, in een dergelijk type staat dat we elk gebruiken. Bijvoorbeeld een array met gebruikers en we willen de gebruiker controleren met de naam "Vijay", dus we moeten elk element controleren en daarvoor hebben we een "foreach" -lus nodig en zodra de gebruiker "Vijay" -lus wordt afgesloten. Als u naar het stadsattribuut van elke gebruiker moest kijken voordat u een actie ondernam, zou u ForEach Loop kunnen gebruiken en kunt u respectieve werkzaamheden uitvoeren voor elke stad. ForEach bespaart weinig geheugen en tijd in vergelijking met for loop. In PowerShell 4.0 en latere versie biedt de ForEach-methode nog snellere prestaties.

Syntaxis van ForEach Loop

Hieronder staat de syntaxis

foreach ($ in $)
(


)

In de bovenstaande syntaxis kunnen we zien dat elke keer dat een item uit de Actualarray wordt gepickt en dat item wordt verwerkt binnen de foreach-lus. Als $ leeg is of er geen item in zit, wordt dit niet gebruikt voor het uitvoeren van instructies. PowerShell maakt automatisch de variabele $ wanneer de Foreach-lus wordt uitgevoerd. De Foreach-lus in het volgende voorbeeld geeft bijvoorbeeld de waarden weer in de array $ students. In for lus moesten we logica schrijven om te controleren of de array leeg is of niet, de foreach-lus voert een instructieblok uit als er een element in de array zit.

Code:

$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
)

Uitgangs- en codeschermen:

Stroomdiagram voor PowerShell voor elke lus

Hieronder is het stroomdiagram voor PowerShell ForEach Loop:

Verklaring van het bovenstaande stroomdiagram: het bovenstaande stroomdiagram geeft zeer duidelijk de stroom weer. Zodra de uitvoering als eerste begint, wordt er gecontroleerd op gegevens (gecontroleerd of het element zich in de array bevindt) of de lege lus stopt. Maar als Data er is, zal het doorgaan met uitvoeren en instructie 1, instructie 2, instructie 3 uitvoeren tot de laatste gegevens van de array. Zodra Array een lege lus krijgt, stopt u met de uitvoering.

Output:

Uitleg van de bovenstaande uitvoer: Bovenstaand scherm laat zien, als er twee attributen in de array waren, werd deze twee keer afgedrukt, hallo, maar als we $ studenten als een lege array geen hallo-print maakten, betekent dit dat in het geval van een kenmerk binnen $ beschikbaar is studentenarray dan gaat het instructieblok uitvoeren anders wordt het niet uitgevoerd.

Hoe werkt ForEach Loop in PowerShell?

Stel dat we 4 elementen hebben en we willen elk getal met vijf vermenigvuldigen. Stel dat we $ a, $ b, $ c, $ d hebben en dat we elk met 5 moeten vermenigvuldigen, dus wat we gaan doen, zie onderstaand voorbeeld:

Voorbeeldcode:

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

Vandaar dat we ons resultaat hebben gekregen. Maar het was goed totdat we slechts 4 items hebben om te vermenigvuldigen met 5, stel dat er 10.000 elementen zijn die moeten worden vermenigvuldigd met 5, dan zou het een heel vervelende taak zijn om voor elk te schrijven.

Dus wat zou daar een gemakkelijke oplossing voor zijn? Het enige wat we moeten doen is, we moeten een array maken met al onze elementen en de array passeren door elk element te vermenigvuldigen en te vermenigvuldigen met 5. Om het getal vijf te vermenigvuldigen met elk van de elementen in de array, moeten we door de array lopen met behulp van de opdracht ForEach.

Hier is het hele script:

Code:

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

Output:

Verklaring van de bovenstaande code: In de bovenstaande voorbeelden die we kunnen zien, hebben we elkaar een variabele $ f gedefinieerd en alle 4 variabelen eraan toegewezen, waardoor het een array is. Ten slotte geven we het door uit de foreach-lus die ons een resultaat van 10, 20, 45, 25 gaf. Op deze manier maken we ons leven gemakkelijker, omdat er in het echte leven records moeten worden aangepast, dus we kunnen het niet één voor één doen, dus gebruiken we de foreach-lus om hiermee om te gaan. Voer slechts één keer uit en pas zo veel aan als u wilt.

Voorbeelden in PowerShell ForEach Loop

Hieronder is het voorbeeld in PowerShell ForEach Loop:

Voorbeeld 1

Doorloop een reeks strings met de namen van studenten en zoek de lengte van elke string in de array.

Code:

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

Uitgang: Ranjan = 6, Ajay = 4, Vijay = 5, Sujit = 5, John = 4, Rakesh = 6, Hari = 4.

Voorbeeld 2

Laat me je een voorbeeld uit de praktijk geven: bij examens heb je 30 van de 100 punten gezien als voldoende. Dus stel dat er laks student zijn en er is één regel als een student 27 punten krijgt, geeft hem 30 punten, dat betekent dat hij gewoon 3 punten extra toevoegt aan zijn 27 punten. Dus we doorlopen een reeks cijfers van studenten en voegen 3 cijfers toe als hun cijfers 27 zijn en laten ze slagen voor examens omdat 30 punten voldoende zijn.

Code:

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

Output: Er waren twee studenten, maar het handmatig controleren in lakhs van studenten voor 27 punten was een beetje vervelende taak die we hebben opgelost.

Voorbeeld 3

Nog een voorbeeld, zoek alle getallen tussen 1 en 100 die volledig deelbaar zijn door 10.

Code:

$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

Output:

Conclusie

Kortom, een foreach lus-instructie stelt ons in staat om een ​​instructie of groep instructies meerdere keren uit te voeren, samen met het controleren van de beschikbaarheid van elementen in de array, wat betekent dat de volgende instructie moet worden uitgevoerd als er elementen zijn. Foreach-loops worden alleen uitgevoerd als er elementen in de array zijn, waardoor deze anders is dan voor loop.

Aanbevolen artikelen

Dit is een handleiding voor PowerShell ForEach Loop. Hier bespreken we hoe werkt ForEach Loop in PowerShell?, met verschillende voorbeelden. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -

  1. Voor lus in R
  2. Wat is PowerShell
  3. Gebruik van Powershell
  4. Hoe PowerShell te installeren
  5. Matrix in PowerShell | Voorbeelden