Freigeben über


about_For

Kurze Beschreibung

Beschreibt einen Sprachbefehl, den Sie verwenden können, um Anweisungen basierend auf einem bedingten Test auszuführen.

Lange Beschreibung

Die For -Anweisung (auch als For Schleife bezeichnet) ist ein Sprachkonstrukt, mit dem Sie eine Schleife erstellen können, die Befehle in einem Befehlsblock ausführt, während eine angegebene Bedingung als $trueausgewertet wird.

Eine typische Verwendung der For Schleife besteht darin, ein Array von Werten zu durchlaufen und mit einer Teilmenge dieser Werte zu arbeiten. Wenn Sie alle Werte in einem Array durchlaufen möchten, sollten Sie in den meisten Fällen eine Foreach -Anweisung verwenden.

Syntax

Im Folgenden wird die -Anweisungssyntax For veranschaulicht.

for (<Init>; <Condition>; <Repeat>)
{
    <Statement list>
}

Der Init-Platzhalter stellt einen oder mehrere Befehle dar, die ausgeführt werden, bevor die Schleife beginnt. In der Regel verwenden Sie den Init-Teil der Anweisung, um eine Variable mit einem Startwert zu erstellen und zu initialisieren.

Diese Variable ist dann die Grundlage für die Bedingung, die im nächsten Teil der For Anweisung getestet werden soll.

Der Platzhalter Bedingung stellt den Teil der Anweisung dar, der For in einen $truebooleschen Wert oder $false aufgelöst wird. PowerShell wertet die Bedingung bei jeder Ausführung der For Schleife aus. Wenn die -Anweisung lautet $true, werden die Befehle im Befehlsblock ausgeführt, und die Anweisung wird erneut ausgewertet. Wenn die Bedingung weiterhin $truelautet, werden die Befehle in der Anweisungsliste erneut ausgeführt. Die Schleife wird wiederholt, bis die Bedingung zu wird $false.

Der Platzhalter Wiederholen stellt einen oder mehrere Befehle dar, getrennt durch Kommas, die bei jeder Wiederholung der Schleife ausgeführt werden. In der Regel wird dies verwendet, um eine Variable zu ändern, die innerhalb des Bedingungsteils der Anweisung getestet wird.

Der Platzhalter für die Anweisungsliste stellt einen Satz von mindestens einem Befehl dar, der jedes Mal ausgeführt wird, wenn die Schleife eingegeben oder wiederholt wird. Der Inhalt der Anweisungsliste wird von geschweiften Klammern umgeben.

Unterstützung für mehrere Vorgänge

Die folgenden Syntaxen werden für mehrere Zuweisungsvorgänge in der Init-Anweisung unterstützt:

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

Die folgenden Syntaxen werden für mehrere Zuweisungsvorgänge in der Repeat-Anweisung unterstützt:

# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++, $j++)
{
    "`$i:$i"
    "`$j:$j"
}

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; ($i++), ($j++))
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $($i++;$j++))
{
    "`$i:$i"
    "`$j:$j"
}

Hinweis

Andere Vorgänge als Pre- oder Post-Inkrement funktionieren möglicherweise nicht mit allen Syntaxen.

Verwenden Sie für mehrere Bedingungen logische Operatoren, wie im folgenden Beispiel veranschaulicht.

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

Weitere Informationen finden Sie unter about_Logical_Operators.

Beispiele

Mindestens erfordert eine For -Anweisung die Klammern, die den Init-, Condition- und Repeat-Teil der Anweisung umgeben, sowie einen Befehl, der von Klammern im Anweisungslistenteil der Anweisung umgeben ist.

Beachten Sie, dass in den kommenden Beispielen absichtlich Code außerhalb der For -Anweisung angezeigt wird. In späteren Beispielen ist Code in die For -Anweisung integriert.

Beispielsweise zeigt die folgende For Anweisung kontinuierlich den Wert der $i Variablen an, bis Sie den Befehl manuell durch Drücken von STRG+C unterbrechen.

$i = 1
for (;;)
{
    Write-Host $i
}

Sie können der Anweisungsliste zusätzliche Befehle hinzufügen, sodass der Wert von $i bei jeder Ausführung der Schleife um 1 erhöht wird, wie im folgenden Beispiel gezeigt.

for (;;)
{
    $i++; Write-Host $i
}

Bis Sie den Befehl durch Drücken von STRG+C unterbrechen, zeigt diese Anweisung kontinuierlich den Wert der $i Variablen an, da er bei jeder Ausführung der Schleife um 1 erhöht wird.

Anstatt den Wert der Variablen im Anweisungslistenteil der For Anweisung zu ändern, können Sie stattdessen wie folgt den Repeat-Teil der For Anweisung verwenden.

$i=1
for (;;$i++)
{
    Write-Host $i
}

Diese Anweisung wird weiterhin unbegrenzt wiederholt, bis Sie den Befehl durch Drücken von STRG+C abbrechen.

Sie können die For Schleife mit einer Bedingung beenden. Sie können eine Bedingung mithilfe des Bedingungsteils der For Anweisung platzieren. Die For Schleife wird beendet, wenn die Bedingung als ausgewertet wird $false.

Im folgenden Beispiel wird die For Schleife ausgeführt, während der Wert von $i kleiner oder gleich 10 ist.

$i=1
for(;$i -le 10;$i++)
{
    Write-Host $i
}

Anstatt die Variable außerhalb der For Anweisung zu erstellen und zu initialisieren, können Sie diese Aufgabe innerhalb der For Schleife ausführen, indem Sie den Init-Teil der For Anweisung verwenden.

for($i=1; $i -le 10; $i++){Write-Host $i}

Sie können Wagenrückläufe anstelle von Semikolons verwenden, um die Teile Init, Condition und Repeat der For Anweisung zu trennen. Das folgende Beispiel zeigt eine For , die diese alternative Syntax verwendet.

for ($i = 0
  $i -lt 10
  $i++){
  $i
}

Diese alternative Form der For Anweisung funktioniert in PowerShell-Skriptdateien und an der PowerShell-Eingabeaufforderung. Es ist jedoch einfacher, die For Anweisungssyntax mit Semikolons zu verwenden, wenn Sie interaktive Befehle an der Eingabeaufforderung eingeben.

Die For Schleife ist flexibler als die Foreach -Schleife, da sie ihnen das Inkrementieren von Werten in einem Array oder einer Auflistung mithilfe von Mustern ermöglicht. Im folgenden Beispiel wird die $i Variable im Repeat-Teil der For Anweisung um 2 erhöht.

for ($i = 0; $i -le 20; $i += 2)
{
    Write-Host $i
}

Die For Schleife kann auch wie im folgenden Beispiel in einer Zeile geschrieben werden.

for ($i = 0; $i -lt 10; $i++) { Write-Host $i }

Weitere Informationen

about_Comparison_Operators

about_Foreach