Hoe een PowerShell For Loop een opdracht meerdere keren kan uitvoeren
De For-lus is een van de meest waardevolle tools in elke programmeertaal(valuable tools in any programming language) en Microsoft PowerShell is niet anders. U kunt andere lussen gebruiken om opdrachten te herhalen, maar de For-lus is misschien wel de meest eenvoudige.
Van het herhalen van arrays tot het een vooraf bepaald aantal keren uitvoeren van een functie, er zijn veel dingen die u met deze tool kunt bereiken. Hier is een zelfstudie over het gebruik van For-lussen in PowerShell .
Wat is het gebruik(Use) van For Loops in PowerShell ?
In tegenstelling tot Command Prompt is PowerShell een complete scriptomgeving. Dit betekent dat u herbruikbare PowerShell-scripts kunt schrijven om taken automatisch uit te voeren in plaats van handmatig opdrachten in te voeren. En For loops zijn de sleutel tot het schrijven van deze modules.
Een For-instructie herhaalt een scriptblok een bepaald aantal keren, waarbij een bepaalde variabele wordt gewijzigd om de voortgang bij te houden. Hierdoor kunt u de lus gebruiken voor een aantal nogal interessante scenario's.
U kunt reeksen getallen genereren, een priemgetal bepalen of een afteltimer weergeven. Praktischer is dat u een reeks objecten kunt herhalen en bij elke invoer een actie kunt uitvoeren.
De syntaxis(Syntax) van een For -lus(Loop) in PowerShell
For-lussen werken in Windows PowerShell op dezelfde manier als in elke programmeertaal. Expressies die de volgvariabele initialiseren, de waarde ervan testen en de variabele wijzigen, staan tussen haakjes na "For", gescheiden door puntkomma's. Dan komt de lijst met uitspraken zelf, gebonden door accolades.
Voor ( Initialisatie(Initialization) ; Staat(Condition) ; Update )
{
Scriptblok(Script Block)
}
De For -lus(Loop) gebruiken in een PowerShell-script
Het gebruik van de For-lus is vrij eenvoudig. Telkens wanneer u een situatie tegenkomt die vraagt om het herhalen van een enigszins variërende stap, moet u deze in een For-lus plaatsen.
Laten we zeggen dat u een codefragment moet schrijven dat de som van alle natuurlijke getallen tot een getal n kan vinden , opgenomen in de variabele $n. Hier is een eenvoudig For-lusvoorbeeld:
$n = 10
$som = 0
Voor ($i = 1 ; $i -le $n ; $i++)
{
$som = $som + $i
}
"De som van $n natuurlijke getallen is $sum"
Toegang krijgen tot arrays via een For-lus
Het genereren van numerieke reeksen is nauwelijks waar de meeste mensen PowerShell voor gebruiken. Een meer algemeen gebruik is om een array te herhalen.
Stel(Say) dat je een array $week hebt met zeven elementen. U kunt de lijst met dagen in de array uitvoeren met behulp van een eenvoudige For-lus, zoals wordt aangetoond in het volgende voorbeeld.
Voor ($i = 0; $i -lt $week.Lengte; $i++)
{
$week[$i]
}
De ForEach-lus(ForEach Loop) gebruiken om snel(Quickly Iterate) door een array te itereren
Een andere vorm van de For-lus is de ForEach - instructie. Deze versie vereenvoudigt het doorlopen van de inhoud van een PowerShell -array en deze afzonderlijk verwerken. Het vorige codefragment kan bijvoorbeeld als volgt worden herschreven:
Foreach ($ dag in $ week)
{
$dag
}
Bij complexere objecten kunt u ook de Forreach-Object-cmdlet gebruiken om een actie uit te voeren op de inhoud van een PowerShell - opdracht.
Waarin verschilt de For Loop(Loop Different) van andere soorten (Types)loops ?
De For-lus is niet het enige type looping-statement dat voor u beschikbaar is. Zoals de meeste programmeertalen heeft PowerShell meerdere soorten lussen.
Terwijl
De eenvoudigste hiervan is de While-lus. Het enige dat u hebt, is een voorwaarde en een scriptblok, en de lus wordt uitgevoerd zolang de testuitdrukking waar wordt geëvalueerd. Omdat de expressie eerst wordt geëvalueerd, bestaat de kans dat de code helemaal niet wordt uitgevoerd of als een oneindige lus eindigt.
Terwijl ( voorwaarde(Condition) )
{
Scriptblok(Script Block)
}
Doen terwijl
Als u een script schrijft dat ten minste één keer moet worden uitgevoerd, zelfs als de expressie op false evalueert, kunt u de Do-While- lus gebruiken. Het enige verschil met de While-lus is dat het opdrachtblok vóór de voorwaarde wordt geplaatst, wat betekent dat de code wordt uitgevoerd voordat de testuitdrukking voor de eerste keer wordt gecontroleerd.
Doen {
Scriptblok(Script block)
}
Terwijl ( voorwaarde(Condition) )
Doe-totdat
Een andere versie van deze lus is Do-Until . Kortom(Basically) , het voert het codeblok uit en herhaalt het vervolgens totdat de testuitdrukking waar is - het omgekeerde van een Do-While- lus. Geen bijzonder bruikbare structuur, omdat je hetzelfde kunt bereiken door de voorwaarde in een standaard Do-While- lus te wijzigen.
Doen {
Scriptblok(Script Block)
}
Tot ( voorwaarde(Condition) )
Waarom de For Loop beter is
Het probleem met al deze andere lusstructuren is dat ze niet de initiële waarde of update-instructies bevatten. U moet handmatig onthouden dat u een variabele buiten de lus moet maken en deze vervolgens tijdens elke passage van de lus moet verhogen (of verlagen).
Zoals je zou verwachten, vergeten programmeurs deze stap vaak, wat leidt tot een script dat niet werkt zoals bedoeld. Dit verspilt kostbare tijd bij het debuggen.
De For-lus vermijdt dit probleem door de initialisatie- en verhogingsexpressies tussen de starthaken te vereisen. Dit leidt tot schonere, robuustere scripts.
Wanneer moet u de For Loop in PowerShell gebruiken ?
Bij PowerShell(PowerShell) draait alles om het maken van scripts voor automatisering. En waarschijnlijk de meest bruikbare tool om dit te bereiken is de For-lus. U kunt het gebruiken om veel kopieer-plakbewerkingen te vervangen door een compacter, eleganter script.
De meest gebruikelijke functie van deze lus is het herhalen van een array, één item per keer. Voor een nog gestroomlijnder script kun je ook een ForEach -lus gebruiken. U kunt de For-lus ook gebruiken om numerieke reeksen te genereren, hoewel dat zelden nodig is.
De For-lus scoort ten opzichte van andere lusalgoritmen door alle essentiële functies van een lus in de parameters op te nemen, waardoor fouten door het vergeten van die instructies worden voorkomen. Dit maakt de For-lus onmisbaar in elk scenario waarin wordt opgeroepen tot het herhalen van een reeks opdrachten.
Related posts
Maak meerdere mappen met behulp van de opdrachtprompt en PowerShell
Meerdere pagina's naar één PDF-bestand scannen
Een web-app laten werken als een desktop-app
Hoe de Ping-opdracht te gebruiken om netwerkproblemen op te lossen
Het Taskkill-commando gebruiken in Windows 10/11
Hoe de opdrachtprompt en PowerShell ALTIJD als beheerder uit te voeren?
Ontdek wanneer Windows is geïnstalleerd. Wat is de oorspronkelijke installatiedatum?
Uitvoer van de Windows-opdrachtregel omleiden naar een tekstbestand
Genereer een lijst met opstartprogramma's via de opdrachtregel of PowerShell
Zoek de Windows-productsleutel met behulp van de opdrachtprompt of PowerShell
Meerdere e-mails doorsturen in Gmail
Gebruik dit script om meerdere bestanden tegelijk te hernoemen in Windows
Opdrachtprompt in map openen met Windows Verkenner
Bekijk systeeminformatie en beheer processen vanuit CMD of PowerShell
Hoe u PowerShell en opdrachtprompt kunt resetten naar de standaardinstellingen
Wat is de Windows-Terminal? -
Programma's uitvoeren als beheerder met volledige rechten in Windows
Hoe u Word-documenten in meerdere talen kunt vertalen
Schakelen tussen CMD en PowerShell in Windows Terminal
Vervang Powershell door de opdrachtprompt in het startmenu van Windows 10