Die For-Schleife ist eine der wertvolle Werkzeuge in jeder Programmiersprache -Schleifen, und Microsoft PowerShell ist 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 vorgegebenen Anzahl von Malen können Sie mit diesem Tool viele Dinge erreichen. Hier ist ein Tutorial zur Verwendung von For-Schleifen in PowerShell.
Wozu dienen For-Schleifen in PowerShell?
Im Gegensatz zu Eingabeaufforderung ist PowerShell 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 ändert dabei eine bestimmte Variable, um den Fortschritt zu verfolgen. Dadurch können Sie die Schleife für einige recht interessante Szenarien verwenden.
Sie können Zahlenfolgen generieren, eine Primzahl bestimmen oder einen Countdown-Timer anzeigen. Praktischer ist es, wenn Sie ein Array von Objekten durchlaufen und mit jedem Eintrag eine Aktion ausführen.
Die Syntax einer For-Schleife in PowerShell
For-Schleifen funktionieren in Windows PowerShell genauso wie in jeder anderen Programmiersprache. Ausdrücke, die die Tracking-Variable initialisieren, ihren Wert testen und die Variable ändern, sind in den durch Semikolons getrennten Klammern nach „For“ eingeschlossen. Dann kommt die Anweisungsliste selbst, die durch geschweifte Klammern gebunden ist.
Für (Initialisierung; Bedingung; Update)
{
Skriptblock
So verwenden Sie die For-Schleife in einem PowerShell-Skript
Die Verwendung der For-Schleife ist ziemlich einfach. Immer wenn Sie auf eine Situation stoßen, die die Wiederholung eines leicht variierenden Schritts erfordert, sollten Sie ihn in eine For-Schleife einfügen.
Angenommen, Sie müssen einen Codeausschnitt schreiben, der die Summe aller natürlichen Zahlen bis zu einer Zahl nermitteln kann, die in der Variablen $n enthalten ist. Hier ist ein einfaches Beispiel für eine For-Schleife:
$n = 10
$sum = 0
Für ($i = 1 ; $i -le $n ; $i++)
{
$sum = $sum + $i
„Die Summe von $n natürlichen Zahlen ist $sum“
Zugriff auf Arrays über eine For-Schleife
.Das Generieren numerischer Sequenzen ist kaum das, wofür die meisten Leute PowerShell verwenden. Eine häufigere Verwendung ist die Iteration ü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.
Für ($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. Der bisherige Codeausschnitt kann beispielsweise so umgeschrieben werden:
Foreach ($Tag in $Woche)
{
$Tag
Beim Umgang mit komplexeren Objekten 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 Schleifentypen?
Die For-Schleife ist nicht die einzige Art von Schleifenanweisung, die Ihnen zur Verfügung steht. Wie die meisten Programmiersprachen verfügt PowerShell über mehrere Arten von Schleifen.
Während
Die einfachste davon ist die While-Schleife. Alles, was Sie haben, ist eine Bedingung und ein Skriptblock, und die Schleife läuft, solange 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 in einer Endlosschleife endet.
While (Bedingung)
{
Skriptblock
Do-While
Wenn Sie ein Skript schreiben, das mindestens einmal ausgeführt werden muss – auch wenn der Ausdruck als falsch ausgewertet wird –, 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.
Machen Sie {
Skriptblock
While (Bedingung)
Do-Bis
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 Standard-Do-While-Schleife ändern..
Machen Sie {
Skriptblock
Bis (Bedingung)
Warum die For-Schleife besser ist
Das Problem bei all diesen anderen Schleifenstrukturen besteht darin, dass sie weder den Anfangswert noch Aktualisierungsanweisungen enthalten. Sie müssen manuell daran denken, eine Variable außerhalb der Schleife zu erstellen und diese dann bei jedem Durchlauf der Schleife zu erhöhen (oder zu dekrementieren).
Wie zu erwarten ist, vergessen Programmierer diesen Schritt oft, was dazu führt, dass ein Skript nicht wie vorgesehen funktioniert. Dies verschwendet wertvolle Zeit beim Debuggen.
Die For-Schleife vermeidet dieses Problem, indem sie die Initialisierungs- und Inkrementierungsausdrücke innerhalb der Startklammern erfordert. Dies führt zu saubereren und robusteren Skripten.
Wann sollten Sie die For-Schleife in PowerShell verwenden?
Bei PowerShell dreht sich alles um die Erstellung von Skripten für die Automatisierung. Und das wahrscheinlich nützlichste Werkzeug, um dies zu erreichen, ist die For-Schleife. Sie können damit viele Kopier- und Einfügevorgänge durch ein kompakteres, eleganteres Skript ersetzen.
Die häufigste Funktion dieser Schleife besteht darin, jeweils einen Eintrag über ein Array zu durchlaufen. Für ein noch schlankeres Skript können Sie auch eine ForEach-Schleife verwenden. Sie können die For-Schleife auch verwenden, um numerische Folgen zu generieren, obwohl dies selten erforderlich ist.
Die For-Schleife punktet gegenüber anderen Schleifenalgorithmen, indem sie alle wesentlichen Funktionen einer Schleife in die Parameter einbezieht und so Fehler aufgrund des Vergessens dieser Anweisungen verhindert. Dies macht die For-Schleife in jedem Szenario unverzichtbar, das die Wiederholung einer Reihe von Befehlen erfordert.
.