about_For

Kurze Beschreibung

Beschreibt einen Sprachbefehl, den Sie zum Ausführen von Anweisungen basierend auf einem bedingten Test verwenden können.

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 ausgewertet wird $true.

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

Syntax

Im Folgenden wird die For Anweisungssyntax gezeigt.

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 Anfangswert zu erstellen und zu initialisieren.

Diese Variable ist dann die Basis für die Zu testende Bedingung im nächsten Teil der For Anweisung.

Der Platzhalter "Condition" stellt den Teil der Anweisung dar, der For in einen oder $falseeinen $true booleschen Wert 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 noch $truebesteht, werden die Befehle in der Anweisungsliste erneut ausgeführt. Die Schleife wird wiederholt, bis die Bedingung wird $false.

Der Platzhalter "Wiederholen " stellt einen oder mehrere Befehle dar, getrennt durch Kommas, die jedes Mal ausgeführt werden, wenn die Schleife wiederholt wird. In der Regel wird dies verwendet, um eine Variable zu ändern, die innerhalb des Condition-Teils 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 ist von geschweiften Klammern umgeben.

Unterstützung für mehrere Vorgänge

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

# Comma separated assignment expressions enclosed in parentheses.
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 Zuordnungsvorgä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 parentheses.
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 vor oder nach dem 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 Klammer, die den Init-, Condition- und Repeat-Teil der Anweisung umgibt, und einen Befehl, der von geschweiften Klammern im Anweisungslistenteil der Anweisung umgeben ist.

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

Die folgende For Anweisung zeigt beispielsweise kontinuierlich den Wert der $i Variablen an, bis Sie den Befehl manuell ausbrechen, indem Sie STRG+C drücken.

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

Sie können der Anweisungsliste zusätzliche Befehle hinzufügen, sodass der Wert der $i Schleife 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 aufheben, zeigt diese Anweisung kontinuierlich den Wert der $i Variablen an, da sie 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 den Repeat-Teil der For Anweisung wie folgt verwenden.

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

Diese Anweisung wird immer noch unbegrenzt wiederholt, bis Sie den Befehl aufheben, indem Sie STRG+C drücken.

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 ausgewertet wird $false.

Im folgenden Beispiel wird die For Schleife ausgeführt, während der Wert kleiner $i als 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 mithilfe des Init-Teils der For Anweisung ausführen.

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

Sie können Wagenrücklaufs anstelle von Semikolons verwenden, um die Teile "Init", "Condition" und "Repeat " der For Anweisung zu trennen. Das folgende Beispiel zeigt eine For Syntax, 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 Werte in einem Array oder einer Auflistung mithilfe von Mustern inkrementieren können. Im folgenden Beispiel wird die $i Variable um 2 im Repeat-Teil der For Anweisung erhöht.

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

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

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

Weitere Informationen