Hvordan en PowerShell For Loop kan køre en kommando flere gange

For-løkken er et af de mest værdifulde værktøjer i ethvert programmeringssprog(valuable tools in any programming language) , og  Microsoft PowerShell er ikke anderledes. Du kan bruge andre loops til at gentage kommandoer, men For-løkken er måske den mest ligetil.

Fra iteration over arrays til at udføre en funktion et forudbestemt antal gange, er der mange ting, du kan opnå med dette værktøj. Her er en vejledning i, hvordan du bruger For loops i PowerShell .

Hvad er brugen(Use) af ​​til loops i PowerShell ?

I modsætning til kommandoprompt(Command Prompt) er PowerShell et komplet scriptmiljø. Dette betyder, at du kan skrive genanvendelige PowerShell-scripts til automatisk at udføre opgaver i stedet for at indtaste kommandoer manuelt. Og For loops er nøglen til at skrive disse moduler.

En For-sætning gentager en scriptblok et bestemt antal gange, og modificerer en given variabel for at holde styr på progression. Dette giver dig mulighed for at bruge løkken til nogle ret interessante scenarier.

Du kan generere talsekvenser, bestemme et primtal eller vise en nedtællingstimer. Mere praktisk kan du iterere over en række objekter og udføre en handling med hver indtastning.

Syntaksen for(Syntax) en For Loop i PowerShell

For loops fungerer i Windows PowerShell på samme måde, som de gør i et hvilket som helst programmeringssprog. Udtryk, der initialiserer sporingsvariablen, tester dens værdi og ændrer variablen, er indlejret i parenteserne efter "For", adskilt af semikolon. Så kommer selve udsagnslisten bundet af krøllede seler.

Til ( initialisering(Initialization) ; tilstand(Condition) ; opdatering(Update) )

{

    Scriptblok(Script Block)

}

Sådan bruges For Loop i et PowerShell-script

Det er ret simpelt at bruge For-løkken. Når du støder på en situation, der kræver gentagelse af et lidt varierende trin, bør du lægge det i en For-løkke.

Lad os sige, at du skal skrive et kodestykke, der kan finde summen af ​​alle naturlige tal indtil et tal n , indeholdt i variablen $n. Her er et grundlæggende For loop-eksempel:

$n = 10

$sum = 0

For ($i = 1 ; $i -le $n ; $i++)

{

    $sum = $sum + $i

}

"Summen af ​​$n naturlige tal er $sum"

Adgang til arrays gennem en For-løkke

Generering af numeriske sekvenser er næppe, hvad de fleste mennesker bruger PowerShell til. En mere almindelig brug er at iterere over et array.

Lad os sige(Say) , at du har et array $week med syv elementer. Du kan udlæse listen over de dage, der er indeholdt i arrayet ved hjælp af en simpel For-løkke, som vist i følgende eksempel.

For ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $uge[$i]

}

Brug af ForEach-løkken(ForEach Loop) til hurtigt(Quickly Iterate) at gentage et array

En anden form for For-løkken er ForEach- sætningen. Denne version forenkler at gennemgå indholdet af et PowerShell -array og behandle dem individuelt. Det tidligere kodestykke kan for eksempel omskrives sådan her:

Foreach ($dag i $uge)

{

    $dag

}

Når du håndterer mere komplekse objekter, kan du også bruge Foreach-Object-cmdlet'en til at udføre en handling på indholdet af enhver PowerShell - kommando.

Hvordan er For Loop anderledes(Loop Different) end andre typer (Types)loops ?

For-løkken er ikke den eneste type looping-sætning, der er tilgængelig for dig. Som de fleste programmeringssprog har PowerShell flere typer sløjfer.

Mens

Den enkleste af disse er While-løkken. Alt du har er en betingelse og en scriptblok, og løkken kører, så længe testudtrykket evalueres til sandt. Da udtrykket evalueres først, er der en chance for, at koden slet ikke kører eller ender som en uendelig løkke. 

Mens ( tilstand(Condition) )

{

    Scriptblok(Script Block)

}

Gøre imens

Hvis du skriver et script, der skal køre mindst én gang – også selvom udtrykket evalueres til falsk – så kan du bruge Do-While- løkken. Den eneste forskel fra While-løkken er, at den placerer kommandoblokken før betingelsen, hvilket betyder, at koden udføres, før testudtrykket kontrolleres for første gang.

Gør {

    Script blok(Script block)

}

Mens ( tilstand(Condition) )

Gør-Indtil

En anden version af denne løkke er Do-Inntil(Do-Until) . Grundlæggende(Basically) kører den kodeblokken og gentager den derefter, indtil testudtrykket er sandt - det omvendte af en Do-While- løkke. Ikke en særlig brugbar struktur, da du kan opnå det samme ved at ændre tilstanden i en standard Do-While loop.

Gør {

    Scriptblok(Script Block)

}

Indtil ( tilstand(Condition) )

Hvorfor For Loop er bedre

Problemet med alle disse andre looping-strukturer er, at de ikke inkluderer startværdien eller opdateringssætningerne. Du skal manuelt huske at oprette en variabel uden for løkken og derefter øge den (eller dekrementere den) under hver gang i løkken.

Som du måske forventer, glemmer programmører ofte dette trin, hvilket fører til et script, der ikke virker efter hensigten. Dette spilder kostbar tid på fejlretning.

For-løkken undgår dette problem ved at nødvendiggøre initialisering og stigningsudtryk inden for startparenteserne. Dette fører til renere, mere robuste scripts.

Hvornår skal du bruge For Loop i PowerShell ?

PowerShell handler om at skabe scripts til automatisering. Og nok det mest nyttige værktøj til at opnå dette er For-løkken. Du kan bruge det til at erstatte mange copy-paste-operationer med et mere kompakt, elegant script.

Den mest almindelige funktion af denne sløjfe er at iterere over et array, én indgang ad gangen. For et endnu mere strømlinet script kan du også bruge en ForEach -løkke. Du kan også bruge For-løkken til at generere numeriske sekvenser, selvom det sjældent er nødvendigt.

For loop scorer over andre looping algoritmer ved at inkludere alle væsentlige funktioner i en loop i parametrene, hvilket forhindrer fejl på grund af at glemme disse udsagn. Dette gør For-løkken uundværlig i ethvert scenarie, der kræver gentagelse af et sæt kommandoer.



About the author

audiofil ingeniør og audio produktspecialist med mere end 10 års erfaring. Jeg har specialiseret mig i at skabe kvalitets musikhøjttalere og høretelefoner fra start til slut. Jeg er ekspert i fejlfinding af lydproblemer samt design af nye højttalere og hovedtelefonsystemer. Min erfaring rækker ud over blot at lave gode produkter; Jeg har også en passion for at hjælpe andre til at være deres bedst mulige jeg, uanset om det er gennem uddannelse eller samfundstjeneste.



Related posts