Om förAbout For

Kort beskrivningShort description

Beskriver ett språk kommando som du kan använda för att köra instruktioner som baseras på ett villkorligt test.Describes a language command you can use to run statements based on a conditional test.

Lång beskrivningLong description

ForInstruktionen (kallas även en For loop) är en språk konstruktion som du kan använda för att skapa en loop som kör kommandon i ett kommando block medan ett angivet villkor utvärderas till $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.

En typisk användning av For slingan är att iterera en matris med värden och att använda en delmängd av dessa värden.A typical use of the For loop is to iterate an array of values and to operate on a subset of these values. I de flesta fall bör du överväga att använda en instruktion om du vill iterera alla värden i en matris Foreach .In most cases, if you want to iterate all the values in an array, consider using a Foreach statement.

SyntaxSyntax

Följande visar For syntaxen för uttrycket.The following shows the For statement syntax.

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

Plats hållaren init representerar ett eller flera kommandon som körs innan loopen börjar.The Init placeholder represents one or more commands that are run before the loop begins. Du använder vanligt vis init -delen av instruktionen för att skapa och initiera en variabel med ett start värde.You typically use the Init portion of the statement to create and initialize a variable with a starting value.

Den här variabeln kommer sedan att ligga till grund för villkoret som ska testas i nästa del av For instruktionen.This variable will then be the basis for the condition to be tested in the next portion of the For statement.

Plats hållaren för villkor representerar den del av For instruktionen som matchar ett $true eller $false booleskt värde.The Condition placeholder represents the portion of the For statement that resolves to a $true or $false Boolean value. PowerShell utvärderar villkoret varje gången For slingen körs.PowerShell evaluates the condition each time the For loop runs. Om instruktionen är körs $true kommandona i kommando blocket och instruktionen utvärderas igen.If the statement is $true, the commands in the command block run, and the statement is evaluated again. Om villkoret fortfarande är $true fallet körs kommandona i instruktions listan igen.If the condition is still $true, the commands in the Statement list run again. Loopen upprepas tills villkoret blir $false .The loop is repeated until the condition becomes $false.

Plats hållaren för upprepning representerar ett eller flera kommandon, avgränsade med kommatecken, som körs varje gången upprepningen upprepas.The Repeat placeholder represents one or more commands, separated by commas, that are executed each time the loop repeats. Detta används vanligt vis för att ändra en variabel som testas inuti villkors delen i instruktionen.Typically, this is used to modify a variable that is tested inside the Condition part of the statement.

Plats hållaren för instruktions listan representerar en uppsättning av ett eller flera kommandon som körs varje gången loopen anges eller upprepas.The Statement list placeholder represents a set of one or more commands that are run each time the loop is entered or repeated. Innehållet i instruktions listan omges av klammerparenteser.The contents of the Statement list are surrounded by braces.

Stöd för flera åtgärderSupport for multiple operations

Följande syntax stöds för flera tilldelnings åtgärder i init -instruktionen: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"
}

Följande syntax stöds för flera tilldelnings åtgärder i instruktionen 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"
}

Anteckning

Andra åtgärder än före eller efter-steg kanske inte fungerar med alla syntaxer.Operations other than pre or post increment may not work with all syntaxes.

För flera villkor använder logiska operatorer som de visas i följande exempel.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"
}

Mer information finns i about_Logical_Operators.For more information, see about_Logical_Operators.

ExempelExamples

En instruktion kräver minst en For parentes som omger kommandot init , condition och REPEAT i instruktionen och ett kommando omgiven av klamrar i instruktions List delen av instruktionen.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.

Observera att de kommande exemplen avsiktligt visar kod utanför For instruktionen.Note that the upcoming examples intentionally show code outside the For statement. I senare exempel integreras kod i For instruktionen.In later examples, code is integrated into the For statement.

Till exempel For visar följande instruktion hela tiden värdet för $i variabeln tills du avbryter kommandot manuellt genom att trycka på 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
}

Du kan lägga till ytterligare kommandon i instruktions listan så att värdet i $i ökas med 1 varje gången loopen körs, som i följande exempel.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
}

Tills du har slut på kommandot genom att trycka på CTRL + C visar den här instruktionen hela tiden värdet för $i variabeln som ökas med 1 varje gång slingan körs.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.

I stället för att ändra värdet för variabeln i instruktions List delen av For instruktionen kan du använda den upprepande delen av For instruktionen i stället, enligt följande.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
}

Den här instruktionen upprepas fortfarande oändligt tills du delar ut kommandot genom att trycka på CTRL + C.This statement will still repeat indefinitely until you break out of the command by pressing CTRL+C.

Du kan avsluta For loopen med ett villkor.You can terminate the For loop using a condition. Du kan placera ett villkor med hjälp av villkors delen i For instruktionen.You can place a condition using the Condition portion of the For statement. ForLoopen avslutas när villkoret utvärderas till $false .The For loop terminates when the condition evaluates to $false.

I följande exempel For körs loopen medan värdet $i är mindre än eller lika med 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
}

I stället för att skapa och initiera variabeln utanför For instruktionen kan du utföra den här uppgiften i For loopen med hjälp av instruktionens init -del For .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}

Du kan använda vagn returer i stället för semikolon för att avgränsa delarna init , condition och REPEAT i For instruktionen.You can use carriage returns instead of semicolons to delimit the Init , Condition , and Repeat portions of the For statement. I följande exempel visas en For som använder den här alternativa syntaxen.The following example shows a For that uses this alternative syntax.

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

Den här alternativa formen av For instruktionen fungerar i PowerShell-skriptfiler och i PowerShell-Kommandotolken.This alternative form of the For statement works in PowerShell script files and at the PowerShell command prompt. Men det är enklare att använda kommandot For Statement med semikolon när du anger interaktiva kommandon i kommando tolken.However, it is easier to use the For statement syntax with semicolons when you enter interactive commands at the command prompt.

ForLoopen är mer flexibel än Foreach loopen eftersom du kan öka värdena i en matris eller samling med hjälp av mönster.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. I följande exempel $i ökas variabeln med 2 i upprepnings delen av For instruktionen.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
}

ForSlingan kan också skrivas på en rad som i följande exempel.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 }

SE ÄVENSEE ALSO

about_Comparison_Operatorsabout_Comparison_Operators

about_Foreachabout_Foreach