Introduktion till Loops i PowerShell

Vi kommer alltid att behöva slingor om vi har något repetitivt arbete. I loop kör vi en kod eller något uttalande på repetitiv basis. Ett riktigt exempel, antag att det i en skola finns 20000 studenter och på grund av någon anledning beslutade universitetet att ge 5 poäng extra för tentamen till varje student. Så universitetet har beslutat att ge dessa fem betyg till varje student förutom de vars närvaro är mindre än 100 dagar. Nu antar du bara hur personalen kommer att göra det, de måste kontrollera varje students betyg och årets närvaro. Men samma sak med hjälp av valfri loop skulle det ha kunnat göras mycket enkelt genom att skapa en rad elever med sina betyg och närvaron. Med hjälp av en slinga kan vi spara extra ansträngningar. Låt oss förstå Loops i PowerShell i detalj.

Typer av slingor i PowerShell

Det finns många sätt att köra loop i PowerShell, men det beror alltid på dina krav och genomförbarhet för programmet, till exempel om du vill köra minst en gång för någon matris än vad vi borde använda do-while-loop annars finns det för loop och för var och en som är bra .

Typer och deras exempel ges nedan:

1. Medan

Medan uttalande tar ett villkor som argument och exekvering av uttalande i en stundslinga beror på villkoret, betyder det att om ett villkor är en framgång så kommer det att utföra uttalande annars inte.

Syntax:

while(condition)
(
Statement 1
Statement 2
….
)

Exempel:

$j = 0
while($j -lt 10)
(
Write-Output $j
$j++ )

Nedan visas skärmen för exekvering av kod ovan

2. Gör medan

Gör medan är ungefär som medan loop endast skillnad är att det kommer att köras minst en gång, det betyder att det kommer att utföra göra ett block för första gången och medan block om ett villkor är sant. I syntaxen nedan exekveras block för första gången för säkerhet.

  • Gör : Det här blocket körs först och en gång när exekveringen startar.
  • Medan : Utförande av uttalande 1 och uttalande 2 beror helt på villkors framgång.

Syntax:

Do
(
Statement 1
Statement 2
….)while(condition)(
Statement 3
Statement 4
…..
)

Exempel 1:

$j = 0
do
(
Write-Output $j // this block will execute first time
$j++
)while($j -lt 10)

Exempel 2:

I det här exemplet körs blocket för första gången även tillståndet var inte sant.

$j = 0
do
(
Write-Output $j
$j--
)while($j -gt 0)

Skärmen för båda programmen visas nedan

3. Gör tills

Gör tills är lite annorlunda än medan, i gör tills exekveringen kommer att fortsätta tills negativa resultat kommer tillbaka med "tills block". Två saker är viktiga här.

  • Gör : Detta block fortsätter att köras tills blockets villkor misslyckas, vilket betyder tills blocket returnerar ett negativt värde.
  • Tills : Blockera uttalande 1 och uttalande 2 kör tills förhållandena ger negativa resultat.

Syntax:

do
(
Statement 1
Statement 2
….
)until(condition)

Exempel:

$i = 0
do
(
Write-Output $i
$i++
)until($i -ge 5) //keep checking condition

I “gör tills” -blocket kan vi se att exekveringen av do-blocket kommer att fortsätta tills ”tills blocket” -villkoret ger ett positivt värde.

Nedan visas skärmen för exekvering av kod ovan

4. För

För uttalanden körs en uttalande lista noll eller fler gånger baserat på en initial inställning. I syntaxen nedan för for loop finns det tre viktiga avsnitt

  • Initialiseringsavsnitt : I det här avsnittet tilldelades det initiala värdet för alla variabler, det här avsnittet körs en gång för första gången.
  • Villkor : I tillståndsdelar skriver vi vårt villkor för vilken slinga kommer att köras, vilket innebär att exekveringen av uttalande block alltid beror på framgången för tillståndsdelar om villkoret är sant kommer uttalande block att utföra annat inte.
  • Funktion : I detta block kan vi öka, minska eller ändra värdet på att initialisera en variabel eller något annat enligt våra krav.

Syntax:

for($initialisation; condition; operation)
(
Statement 1
Statement 2
….
)

Exempel 1:

for($i = 0; $i -lt 3; $i++)
(
Write-Output $i
)

Utmatningsskärm med ovanstående kod

Många gånger räcker inte en för slinga för att fullfölja våra krav, så vi kan använda kapslade för öglor. Vi bör försöka undvika häckning av slingor eftersom deras tidskomplexitet kan bli mycket hög om den inte hanteras korrekt. Nedan är ett exempel på kapslad för slinga.

Exempel 2:

for($j = 0; $j -lt 3; $j++)
(
$line = ''for($j = 0; $j -lt 3; $j++)
(
$line += $j.ToString() + $j.ToString() + ' '
)
Write-Output $line
)

Utgång: 00 11 22

5. ForEach

“Foreach” kör uttalande block för på varandra följande gång till den sista artikeln i en matris. Bra saker för varje uttalande är att vi inte behöver skriva någon separat kod för att extrahera en mängd artiklar. I allmänhet är "foreach" en optimerad version av "for" -slinga som ger inre array utan att skriva några program. Här kontrollerar det helt enkelt för objekt inuti array som vi kör "foreach" -slinga om någon artikel är där kommer den att utföra uttalande 1 och uttalande 2-block.

Syntax:

foreach($arrayItems)
(
Statement 1
Statement 2
…..
)

Exempel:

$numbers = 23, 21, 22, 78
foreach($number in $numbers)
(
“$number is now =“ +$number
)

Nedanför skärmen visar exekveringar ovan

Fördelarna med Loops i PowerShell

Den största fördelen med att använda en slinga är att det minskar för mycket manuellt arbete, det är också mycket bra att kontrollera storleken på data för en liknande typ av aktivitet på den. Låt oss säga att jag vill att du ska skriva ut 1 till 1000000 och jag sa att du kan lägga till 1 till varje nummer som kan delas med 2, vilket är ett jämnt tal. Om du sedan börjar skriva ut en efter en och försöker lägga till 1 till varje jämnt nummer kommer det att ta för mycket tid. Så ett bättre och enkelt sätt som du föreslog var att bara upprepa denna process med att lägga till en till antalet tills vi når 1000000. Den största fördelen som vi får av slingan är att vi återanvänder samma kod, vi behöver inte skriva samma kod för lakhs av data kommer den automatiskt att köra koden till slutet.

Nedan följer några fördelar

  • Öka återanvändbarheten för kod, vilket gör koden mindre
  • Den snabbare beräkningen för big data, vilket sparar mycket manuellt arbete
  • Kodens redundans är mindre.

Ett exempel med dess fördelar

Fråga: skriv upp till 1000.

Without loop,
Write-Output 1;
Write-Output 2;
Write-Output 3;
Write-Output 4;
…so on
Till 100

With loop,
$x=1..100
foreach($y in $x)(
Write-Output $y;
)

Rekommenderade artiklar

Detta har varit en guide till Loops i PowerShell. Här diskuterar vi typer av loopar i PowerShell tillsammans med deras fördelar. Och vi upptäckte att slingor är ett mycket kraftfullt verktyg med mindre ansträngning att använda samma kod. Du kan också titta på följande artiklar för att lära dig mer -

  1. Vad är Shell Scripting?
  2. PowerShell-strängfunktioner
  3. PowerShell-operatörer
  4. PowerShell-kommandon
  5. Exempel på Array i PowerShell

Kategori: