Informacje o programieAbout For

Krótki opisShort description

Opisuje polecenie języka, którego można użyć do uruchamiania instrukcji na podstawie testu warunkowego.Describes a language command you can use to run statements based on a conditional test.

Długi opisLong description

ForInstrukcja (znana także jako For Pętla) to konstrukcja języka, której można użyć do utworzenia pętli, która uruchamia polecenia w bloku poleceń, podczas gdy określony warunek jest obliczany $true .The For statement (also known as a For loop) is a language construct you can use to create a loop that runs commands in a command block while a specified condition evaluates to $true.

Typowym zastosowaniem For pętli jest iteracja tablicy wartości i działania w podzbiorze tych wartości.A typical use of the For loop is to iterate an array of values and to operate on a subset of these values. W większości przypadków, jeśli chcesz wykonać iterację wszystkich wartości w tablicy, rozważ użycie Foreach instrukcji.In most cases, if you want to iterate all the values in an array, consider using a Foreach statement.

SkładniaSyntax

Poniżej przedstawiono For składnię instrukcji.The following shows the For statement syntax.

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

Symbol zastępczy init reprezentuje jedno lub więcej poleceń, które są uruchamiane przed rozpoczęciem pętli.The Init placeholder represents one or more commands that are run before the loop begins. Zwykle używasz części init instrukcji, aby utworzyć i zainicjować zmienną z wartością początkową.You typically use the Init portion of the statement to create and initialize a variable with a starting value.

Ta zmienna będzie wtedy podstawą warunku do przetestowania w następnej części For instrukcji.This variable will then be the basis for the condition to be tested in the next portion of the For statement.

Symbol zastępczy warunku reprezentuje część For instrukcji, która jest rozpoznawana jako $true lub $false wartość logiczna .The Condition placeholder represents the portion of the For statement that resolves to a $true or $false Boolean value. Program PowerShell oblicza warunek przy każdym For uruchomieniu pętli.PowerShell evaluates the condition each time the For loop runs. Jeśli instrukcja ma wartość $true , polecenia w bloku poleceń są uruchamiane, a instrukcja zostanie ponownie oceniona.If the statement is $true, the commands in the command block run, and the statement is evaluated again. Jeśli warunek jest nadal $true , polecenia na liście instrukcji są uruchamiane ponownie.If the condition is still $true, the commands in the Statement list run again. Pętla jest powtarzana do momentu, aż stanie się $false .The loop is repeated until the condition becomes $false.

Symbol zastępczy powtarzania reprezentuje jedno lub więcej poleceń, rozdzielonych przecinkami, które są wykonywane za każdym razem, gdy pętla zostanie powtórzona.The Repeat placeholder represents one or more commands, separated by commas, that are executed each time the loop repeats. Zwykle jest to używane do modyfikowania zmiennej, która jest testowana w ramach warunku instrukcji.Typically, this is used to modify a variable that is tested inside the Condition part of the statement.

Symbol zastępczy listy instrukcji reprezentuje zestaw jednego lub kilku poleceń, które są uruchamiane przy każdym wprowadzeniu lub powtórzeniu pętli.The Statement list placeholder represents a set of one or more commands that are run each time the loop is entered or repeated. Zawartość listy instrukcji jest ujęta w nawiasy klamrowe.The contents of the Statement list are surrounded by braces.

Obsługa wielu operacjiSupport for multiple operations

W instrukcji init obsługiwane są następujące składnie dla wielu operacji przypisania:The following syntaxes are supported for multiple assignment operations in the Init statement:

# 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"
}

Następujące składnie są obsługiwane dla wielu operacji przypisania w instrukcji REPEAT :The following syntaxes are supported for multiple assignment operations in the Repeat statement:

# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
    "`$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"
}

Uwaga

Operacje inne niż przyrosty wstępne lub końcowe mogą nie współpracować ze wszystkimi składniami.Operations other than pre or post increment may not work with all syntaxes.

W przypadku wielu warunków należy użyć operatorów logicznych, jak pokazano w poniższym przykładzie.For multiple Conditions use logical operators as demonstrated by the following example.

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

Aby uzyskać więcej informacji, zobacz about_Logical_Operators.For more information, see about_Logical_Operators.

PrzykładyExamples

Co najmniej For instrukcja wymaga, aby nawias otaczający element init , Condition i REPEAT instrukcji i polecenie ujęte w nawiasy klamrowe w części listy instrukcji instrukcji.At a minimum, a For statement requires the parenthesis surrounding the Init , Condition , and Repeat part of the statement and a command surrounded by braces in the Statement list part of the statement.

Należy zauważyć, że nadchodzące przykłady celowo pokazują kod poza For instrukcją.Note that the upcoming examples intentionally show code outside the For statement. W kolejnych przykładach kod jest zintegrowany z For instrukcją.In later examples, code is integrated into the For statement.

Na przykład Poniższa For instrukcja stale wyświetla wartość $i zmiennej do momentu ręcznego przerwania polecenia przez NACIŚNIĘCIE klawiszy CTRL + C.For example, the following For statement continually displays the value of the $i variable until you manually break out of the command by pressing CTRL+C.

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

Można dodać dodatkowe polecenia do listy instrukcji, aby wartość $i jest zwiększana o 1 przy każdym uruchomieniu pętli, jak pokazano w poniższym przykładzie.You can add additional commands to the statement list so that the value of $i is incremented by 1 each time the loop is run, as the following example shows.

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

Do momentu przerwania polecenia przez naciśnięcie klawiszy CTRL + C, ta instrukcja będzie stale wyświetlać wartość $i zmiennej, ponieważ jest zwiększana o 1 za każdym razem, gdy pętla zostanie uruchomiona.Until you break out of the command by pressing CTRL+C, this statement will continually display the value of the $i variable as it is incremented by 1 each time the loop is run.

Zamiast zmieniać wartość zmiennej w części listy instrukcji For instrukcji, zamiast tego można użyć powtarzanej części For instrukcji, jak pokazano poniżej.Rather than change the value of the variable in the statement list part of the For statement, you can use the Repeat portion of the For statement instead, as follows.

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

Ta instrukcja nadal powtarza się w nieskończoność do momentu przerwania polecenia przez naciśnięcie klawiszy CTRL + C.This statement will still repeat indefinitely until you break out of the command by pressing CTRL+C.

Możesz przerwać For pętlę przy użyciu warunku.You can terminate the For loop using a condition. Warunek można umieścić przy użyciu części warunku For instrukcji.You can place a condition using the Condition portion of the For statement. ForPętla kończy się, gdy warunek zostanie obliczony $false .The For loop terminates when the condition evaluates to $false.

W poniższym przykładzie For Pętla jest uruchamiana, gdy wartość $i jest mniejsza lub równa 10.In the following example, the For loop runs while the value of $i is less than or equal to 10.

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

Zamiast tworzyć i inicjować zmienną poza For instrukcją, można wykonać to zadanie wewnątrz For pętli przy użyciu części init For instrukcji.Instead of creating and initializing the variable outside the For statement, you can perform this task inside the For loop by using the Init portion of the For statement.

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

Możesz użyć znaków powrotu karetki zamiast średników, aby rozdzielić fragmenty init , Condition i REPEAT For instrukcji.You can use carriage returns instead of semicolons to delimit the Init , Condition , and Repeat portions of the For statement. Poniższy przykład pokazuje For , który używa tej składni alternatywnej.The following example shows a For that uses this alternative syntax.

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

Ta alternatywna forma For instrukcji działa w plikach skryptów programu PowerShell i w wierszu polecenia programu PowerShell.This alternative form of the For statement works in PowerShell script files and at the PowerShell command prompt. Można jednak łatwiej używać For składni instrukcji z średnikami, gdy wprowadzasz interaktywne polecenia w wierszu polecenia.However, it is easier to use the For statement syntax with semicolons when you enter interactive commands at the command prompt.

ForPętla jest bardziej elastyczna niż Foreach Pętla, ponieważ umożliwia zwiększenie wartości w tablicy lub kolekcji przy użyciu wzorców.The For loop is more flexible than the Foreach loop because it allows you to increment values in an array or collection by using patterns. W poniższym przykładzie $i zmienna jest zwiększana o 2 w powtarzającej się części For instrukcji.In the following example, the $i variable is incremented by 2 in the Repeat portion of the For statement.

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

ForPętla może być również zapisywana w jednym wierszu, jak w poniższym przykładzie.The For loop can also be written on one line as in the following example.

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

ZOBACZ RÓWNIEŻSEE ALSO

about_Comparison_Operatorsabout_Comparison_Operators

about_Foreachabout_Foreach