Hur en PowerShell For Loop kan köra ett kommando flera gånger

For-loopen är ett av de mest värdefulla verktygen i alla programmeringsspråk(valuable tools in any programming language) , och  Microsoft PowerShell är inte annorlunda. Du kan använda andra loopar för att upprepa kommandon, men For-loopen är kanske den enklaste.

Från att iterera över arrayer till att utföra en funktion ett förutbestämt antal gånger, det finns många saker du kan uppnå med det här verktyget. Här är en handledning om hur du använder For loops i PowerShell .

Vad är användningen(Use) av för loopar(Loops) i PowerShell ?

Till skillnad från kommandotolken(Command Prompt) är PowerShell en komplett skriptmiljö. Det betyder att du kan skriva återanvändbara PowerShell-skript(PowerShell scripts) för att automatiskt utföra uppgifter istället för att ange kommandon manuellt. Och For loopar är nyckeln till att skriva dessa moduler.

En For-sats upprepar ett skriptblock ett visst antal gånger och modifierar en given variabel för att hålla reda på utvecklingen. Detta gör att du kan använda slingan för några ganska intressanta scenarier.

Du kan generera sekvenser av tal, bestämma ett primtal eller visa en nedräkningstimer. Mer praktiskt kan du iterera över en rad objekt och utföra en åtgärd med varje post.

Syntaxen för(Syntax) en For Loop i PowerShell

För loopar fungerar i Windows PowerShell på samma sätt som de gör i alla programmeringsspråk. Uttryck som initierar spårningsvariabeln, testar dess värde och modifierar variabeln är inbäddade inom parenteser efter "For", separerade med semikolon. Sedan kommer själva uttalandelistan bunden av lockiga hängslen.

För ( initiering(Initialization) ; skick(Condition) ; uppdatering(Update) )

{

    Skriptblock(Script Block)

}

Hur man använder For Loop i ett PowerShell-skript(PowerShell Script)

Att använda For-slingan är ganska enkelt. När du stöter på en situation som kräver att du upprepar ett något varierande steg, bör du lägga det i en For-loop.

Låt oss säga att du behöver skriva ett kodavsnitt som kan hitta summan av alla naturliga tal fram till ett tal n , som finns i variabeln $n. Här är ett grundläggande For-loop-exempel:

$n = 10

$summa = 0

För ($i = 1 ; $i -le $n ; $i++)

{

    $summa = $summa + $i

}

"Summan av $n naturliga tal är $summa"

Åtkomst till matriser genom en For-loop

Att generera numeriska sekvenser är knappast vad de flesta använder PowerShell till. En vanligare användning är att iterera över en array.

Säg att(Say) du har en array $week med sju element. Du kan mata ut listan över dagar som finns i arrayen med en enkel For-loop, som visas i följande exempel.

För ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $vecka[$i]

}

Använda ForEach Loop för att snabbt iterera(Quickly Iterate) genom en array

En annan form av For-loopen är ForEach- satsen. Den här versionen förenklar att gå igenom innehållet i en PowerShell- array och bearbeta dem individuellt. Det tidigare kodavsnittet kan till exempel skrivas om så här:

Foreach ($dag i $vecka)

{

    $dag

}

När du hanterar mer komplexa objekt kan du också använda Foreach-Object-cmdleten för att utföra en åtgärd på innehållet i ett PowerShell- kommando.

Hur skiljer sig For Loop(Loop Different) från andra typer(Types) av loopar(Loops) ?

For-loopen är inte den enda typen av looping-sats som är tillgänglig för dig. Liksom de flesta programmeringsspråk har PowerShell flera typer av loopar.

Medan

Den enklaste av dessa är While-slingan. Allt du har är ett villkor och ett skriptblock, och loopen körs så länge som testuttrycket utvärderas till sant. Eftersom uttrycket utvärderas först finns det en chans att koden inte körs alls eller slutar som en oändlig loop. 

Medan ( skick(Condition) )

{

    Skriptblock(Script Block)

}

Göra medan

Om du skriver ett skript som måste köras minst en gång – även om uttrycket utvärderas till falskt – kan du använda Do-While- loopen. Den enda skillnaden från While-loopen är att den placerar kommandoblocket före villkoret, vilket innebär att koden exekveras innan testuttrycket kontrolleras för första gången.

Gör {

    Skriptblock(Script block)

}

Medan ( skick(Condition) )

Gör-tills

En annan version av den här slingan är Do-Till(Do-Until) . I grund och botten(Basically) kör den kodblocket och upprepar det sedan tills testuttrycket är sant – det omvända från en Do-While- loop. Inte en särskilt användbar struktur, eftersom du kan uppnå samma sak genom att modifiera villkoret i en standard Do-While loop.

Gör {

    Skriptblock(Script Block)

}

Tills ( skick(Condition) )

Varför For Loop är bättre

Problemet med alla dessa andra looping-strukturer är att de inte inkluderar initialvärdet eller uppdateringssatserna. Du måste manuellt komma ihåg att skapa en variabel utanför slingan och sedan öka den (eller minska den) under varje gång i slingan.

Som du kanske förväntar dig glömmer programmerare ofta detta steg, vilket leder till ett skript som inte fungerar som avsett. Detta slösar bort dyrbar tid på felsökning.

For-slingan undviker detta problem genom att initiera och öka uttrycken inom startparenteserna. Detta leder till renare, mer robusta skript.

När ska du använda For Loop i PowerShell ?

PowerShell handlar om att skapa skript för automatisering. Och förmodligen det mest användbara verktyget för att uppnå detta är For-loopen. Du kan använda den för att ersätta många kopiera-klistra-operationer med ett mer kompakt, elegant skript.

Den vanligaste funktionen för denna loop är att iterera över en array, en post i taget. För ett ännu mer strömlinjeformat skript kan du också använda en ForEach- loop. Du kan också använda For-loopen för att generera numeriska sekvenser, även om det sällan behövs.

For-loopens poäng över andra loopingalgoritmer genom att inkludera alla väsentliga funktioner i en loop i parametrarna, vilket förhindrar eventuella fel på grund av att dessa uttalanden glöms bort. Detta gör For-loopen oumbärlig i alla scenarier som kräver att en uppsättning kommandon upprepas.



About the author

Jag är en webbutvecklare med över 10 års erfarenhet av att arbeta med webbläsarna Firefox och Google Docs. Jag är specialist på att skapa enkla men kraftfulla onlineapplikationer och har utvecklat webbaserade lösningar för både små företag och stora organisationer. Min kundbas inkluderar några av de största företagen, inklusive FedEx, Coca Cola och Macy's. Mina kunskaper som utvecklare gör mig till en idealisk kandidat för alla projekt som behöver slutföras snabbt och effektivt - från att utveckla anpassade webbplatser till att skapa robusta e-postmarknadsföringskampanjer.



Related posts