Die For-Schleife ist eine der wertvolle Tools in jeder Programmiersprache und Microsoft PowerShell ist da nicht anders. Sie können andere Schleifen verwenden, um Befehle zu wiederholen, aber die For-Schleife ist vielleicht die einfachste.
Von der Iteration über Arrays bis hin zur Ausführung einer Funktion mit einer vorbestimmten Anzahl von Malen, es gibt viele Dinge, die Sie damit erreichen können Werkzeug. Hier ist ein Tutorial zur Verwendung von For-Schleifen in PowerShell.
Inhaltsverzeichnis
Wozu dienen For-Schleifen in PowerShell?
Im Gegensatz zu Eingabeaufforderung, PowerShell ist eine vollständige Skriptumgebung. Das bedeutet, dass Sie wiederverwendbare PowerShell-Skripte schreiben können, um Aufgaben automatisch auszuführen, anstatt Befehle manuell einzugeben. Und For-Schleifen sind der Schlüssel zum Schreiben dieser Module.
Eine For-Anweisung wiederholt einen Skriptblock eine bestimmte Anzahl von Malen und modifiziert eine gegebene Variable, um den Fortschritt zu verfolgen. Dadurch können Sie die Schleife für einige ziemlich interessante Szenarien verwenden.
Sie können Zahlenfolgen generieren, eine Primzahl bestimmen oder einen Countdown-Timer anzeigen. Praktischer können Sie über ein Array von Objekten iterieren und mit jedem Eintrag eine bestimmte Aktion ausführen.
Die Syntax einer For-Schleife in PowerShell
For-Schleifen funktionieren in Windows PowerShell auf die gleiche Weise sie tun es in jeder Programmiersprache. Ausdrücke, die die Tracking-Variable initialisieren, ihren Wert testen und die Variable ändern, befinden sich in den Klammern nach „For“, die durch Semikolons getrennt sind. Dann kommt die Anweisungsliste selbst, die durch geschweifte Klammern gebunden ist.
For (Initialisierung; Bedingung; Aktualisierung)
{
Skriptblock
}
So verwenden Sie die For-Schleife in einem PowerShell-Skript
Die Verwendung der For-Schleife ist ziemlich einfach. Wann immer Sie auf eine Situation stoßen, die die Wiederholung eines leicht variierenden Schritts erfordert, sollten Sie ihn in eine For-Schleife einfügen.
Nehmen wir an, Sie müssen einen Codeausschnitt schreiben, der die Summe aller natürlichen Zahlen bis zu einer Zahl n finden kann, die in der enthalten ist Variable $n. Hier ist ein einfaches Beispiel für eine For-Schleife:
$n=10
$sum=0
For ($i=1 ; $i-le $n ; $i++)
{
$sum=$sum + $i
}
„Die Summe von $n natürlichen Zahlen ist $summe“
Zugriff auf Arrays über eine For-Schleife
Das Generieren numerischer Sequenzen ist kaum das, wofür die meisten Leute PowerShell verwenden. Eine häufigere Anwendung ist das Iterieren über ein Array.
Angenommen, Sie haben ein Array $week mit sieben Elementen. Sie können die Liste der im Array enthaltenen Tage mit einer einfachen For-Schleife ausgeben, wie im folgenden Beispiel gezeigt.
For ($i=0 ; $i-lt $week.Length ; $i++ )
{
$week[$i]
}
Verwenden der ForEach-Schleife zum schnellen Durchlaufen eines Arrays
Eine andere Form der For-Schleife ist die ForEach-Anweisung. Diese Version vereinfacht das Durchsuchen der Inhalte eines PowerShell-Arrays und deren individuelle Verarbeitung. Das vorherige Code-Snippet kann beispielsweise wie folgt umgeschrieben werden:
Foreach ($day in $week)
{
$day
}
Wenn Sie mit komplexeren Objekten arbeiten, können Sie auch das Cmdlet Foreach-Object verwenden, um eine Aktion für den Inhalt eines beliebigen PowerShell-Befehls auszuführen.
Wie unterscheidet sich die For-Schleife von anderen Arten von Schleifen?
Die For-Schleife ist nicht die einzige Schleifenanweisung, die Ihnen zur Verfügung steht. Wie die meisten Programmiersprachen hat PowerShell mehrere Arten von Schleifen.
While
Die einfachste davon ist die While-Schleife. Alles, was Sie haben, ist eine Bedingung und ein Skriptblock, und die Schleife wird so lange ausgeführt, wie der Testausdruck als wahr ausgewertet wird. Da der Ausdruck zuerst ausgewertet wird, besteht die Möglichkeit, dass der Code überhaupt nicht ausgeführt wird oder als Endlosschleife endet.
Während (Bedingung)
{
Skriptblock
}
Do-While
Wenn Sie ein Skript schreiben, das mindestens einmal ausgeführt werden muss – selbst wenn der Ausdruck als falsch ausgewertet wird – dann können Sie die Do-While-Schleife verwenden. Der einzige Unterschied zur While-Schleife besteht darin, dass der Befehlsblock vor der Bedingung platziert wird, was bedeutet, dass der Code ausgeführt wird, bevor der Testausdruck zum ersten Mal überprüft wird.
Do {
Skriptblock
}
Während (Bedingung)
Do-Until
Eine andere Version dieser Schleife ist Do-Until. Im Grunde führt es den Codeblock aus und wiederholt ihn dann, bis der Testausdruck wahr ist – die Umkehrung einer Do-While-Schleife. Keine besonders nützliche Struktur, da Sie dasselbe erreichen können, indem Sie die Bedingung in einer standardmäßigen Do-While-Schleife ändern.
Do {
Script Block
}
Bis (Bedingung)
Warum die For-Schleife besser ist
Das Problem mit all diesen anderen Schleifenstrukturen ist, dass sie nicht den Anfangswert oder die Aktualisierungsanweisungen enthalten. Sie müssen manuell daran denken, eine Variable außerhalb der Schleife zu erstellen und sie dann bei jedem Durchlauf der Schleife zu inkrementieren (oder zu dekrementieren).
Wie Sie vielleicht erwarten, vergessen Programmierer diesen Schritt oft, was zu einem Skript führt das funktioniert nicht wie gewollt. Dies verschwendet wertvolle Zeit beim Debuggen.
Die For-Schleife vermeidet dieses Problem, indem sie die Initialisierung und Inkrement-Ausdrücke innerhalb der beginnenden Klammern erfordert. Dies führt zu saubereren, robusteren Skripten.
Wann sollten Sie die For-Schleife in PowerShell verwenden?
Bei PowerShell dreht sich alles um die Erstellung von Skripts für die Automatisierung. Und wahrscheinlich das nützlichste Werkzeug, um dies zu erreichen, ist die For-Schleife. Sie können es verwenden, um viele Copy-Paste-Operationen durch ein kompakteres, eleganteres Skript zu ersetzen.
Die häufigste Funktion dieser Schleife besteht darin, über ein Array zu iterieren, einen Eintrag nach dem anderen. Für ein noch schlankeres Skript können Sie auch eine ForEach-Schleife verwenden. Sie können die For-Schleife auch verwenden, um Zahlenfolgen zu erzeugen, obwohl dies selten benötigt wird.
Die For-Schleife punktet gegenüber anderen Schleifenalgorithmen, indem sie alle wesentlichen Funktionen einer Schleife in die Parameter aufnimmt und Fehler durch Fehler verhindert diese Aussagen vergessen. Dies macht die For-Schleife in jedem Szenario unverzichtbar, in dem eine Reihe von Befehlen wiederholt werden müssen.