Informazioni suAbout For

Breve descrizioneShort description

Descrive un comando del linguaggio che è possibile usare per eseguire istruzioni basate su un test condizionale.Describes a language command you can use to run statements based on a conditional test.

Descrizione lungaLong description

L' For istruzione, nota anche come For ciclo, è un costrutto di linguaggio che è possibile usare per creare un ciclo che esegue i comandi in un blocco di comandi mentre una condizione specificata restituisce $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.

Un utilizzo tipico del For ciclo consiste nell'iterazione di una matrice di valori e nell'operare su un subset di questi valori.A typical use of the For loop is to iterate an array of values and to operate on a subset of these values. Nella maggior parte dei casi, se si desidera eseguire l'iterazione di tutti i valori in una matrice, è consigliabile utilizzare un' Foreach istruzione.In most cases, if you want to iterate all the values in an array, consider using a Foreach statement.

SintassiSyntax

Di seguito viene illustrata la For sintassi dell'istruzione.The following shows the For statement syntax.

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

Il segnaposto init rappresenta uno o più comandi che vengono eseguiti prima dell'inizio del ciclo.The Init placeholder represents one or more commands that are run before the loop begins. In genere si usa la parte init dell'istruzione per creare e inizializzare una variabile con un valore iniziale.You typically use the Init portion of the statement to create and initialize a variable with a starting value.

Questa variabile sarà quindi la base per la verifica della condizione nella parte successiva dell' For istruzione.This variable will then be the basis for the condition to be tested in the next portion of the For statement.

Il segnaposto della condizione rappresenta la parte dell' For istruzione che viene risolta in $true un $false valore booleano o.The Condition placeholder represents the portion of the For statement that resolves to a $true or $false Boolean value. PowerShell valuta la condizione ogni volta che il For ciclo viene eseguito.PowerShell evaluates the condition each time the For loop runs. Se l'istruzione è $true , i comandi nel blocco di comando vengono eseguiti e l'istruzione viene nuovamente valutata.If the statement is $true, the commands in the command block run, and the statement is evaluated again. Se la condizione è ancora $true , i comandi nell' elenco di istruzioni vengono eseguiti nuovamente.If the condition is still $true, the commands in the Statement list run again. Il ciclo viene ripetuto fino a quando la condizione non diventa $false .The loop is repeated until the condition becomes $false.

Il segnaposto Repeat rappresenta uno o più comandi, separati da virgole, che vengono eseguiti ogni volta che il ciclo viene ripetuto.The Repeat placeholder represents one or more commands, separated by commas, that are executed each time the loop repeats. In genere, viene usato per modificare una variabile testata all'interno della parte della condizione dell'istruzione.Typically, this is used to modify a variable that is tested inside the Condition part of the statement.

Il segnaposto dell' elenco di istruzioni rappresenta un set di uno o più comandi eseguiti ogni volta che il ciclo viene immesso o ripetuto.The Statement list placeholder represents a set of one or more commands that are run each time the loop is entered or repeated. Il contenuto dell' elenco di istruzioni è racchiuso tra parentesi graffe.The contents of the Statement list are surrounded by braces.

Supporto per più operazioniSupport for multiple operations

Le seguenti sintassi sono supportate per più operazioni di assegnazione nell'istruzione init :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"
}

Le seguenti sintassi sono supportate per più operazioni di assegnazione nell'istruzione 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"
}

Nota

Le operazioni diverse da pre o post-incremento potrebbero non funzionare con tutte le sintassi.Operations other than pre or post increment may not work with all syntaxes.

Per più condizioni usare gli operatori logici come illustrato nell'esempio seguente.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"
}

Per ulteriori informazioni, vedere about_Logical_Operators.For more information, see about_Logical_Operators.

EsempiExamples

Come minimo, un' For istruzione richiede le parentesi che racchiudono la parte init , Condition e Repeat dell'istruzione e un comando racchiuso tra parentesi graffe nella parte dell'istruzione List dell'istruzione.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.

Si noti che gli esempi imminenti mostrano intenzionalmente il codice all'esterno dell' For istruzione.Note that the upcoming examples intentionally show code outside the For statement. Negli esempi successivi il codice è integrato nell' For istruzione.In later examples, code is integrated into the For statement.

Nell'istruzione seguente, ad esempio, For viene continuamente visualizzato il valore della $i variabile fino a quando non si interrompe manualmente il comando premendo 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
}

È possibile aggiungere altri comandi all'elenco di istruzioni, in modo che il valore di $i venga incrementato di 1 ogni volta che viene eseguito il ciclo, come illustrato nell'esempio riportato di seguito.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
}

Finché non si interrompe il comando premendo CTRL + C, questa istruzione visualizzerà continuamente il valore della $i variabile Man mano che viene incrementata di 1 ogni volta che il ciclo viene eseguito.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.

Anziché modificare il valore della variabile nella parte dell'istruzione dell'elenco di istruzioni For , è possibile utilizzare invece la parte Repeat dell' For istruzione, come indicato di seguito.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
}

Questa istruzione si ripete a tempo indefinito fino a quando non si interrompe il comando premendo CTRL + C.This statement will still repeat indefinitely until you break out of the command by pressing CTRL+C.

È possibile terminare il For ciclo utilizzando una condizione.You can terminate the For loop using a condition. È possibile inserire una condizione utilizzando la parte della condizione dell' For istruzione.You can place a condition using the Condition portion of the For statement. Il For ciclo termina quando la condizione restituisce $false .The For loop terminates when the condition evaluates to $false.

Nell'esempio seguente il ciclo viene For eseguito mentre il valore di $i è minore o uguale a 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
}

Anziché creare e inizializzare la variabile all'esterno dell' For istruzione, è possibile eseguire questa attività all'interno del For ciclo utilizzando la parte init dell' For istruzione.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}

È possibile utilizzare i ritorni a capo anziché i punti e virgola per delimitare le parti init , Condition e Repeat dell' For istruzione.You can use carriage returns instead of semicolons to delimit the Init , Condition , and Repeat portions of the For statement. Nell'esempio seguente viene illustrato un oggetto For che utilizza questa sintassi alternativa.The following example shows a For that uses this alternative syntax.

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

Questa forma alternativa dell' For istruzione funziona nei file di script di PowerShell e al prompt dei comandi di PowerShell.This alternative form of the For statement works in PowerShell script files and at the PowerShell command prompt. Tuttavia, è più semplice usare la For sintassi dell'istruzione con punti e virgola quando si immettono comandi interattivi al prompt dei comandi.However, it is easier to use the For statement syntax with semicolons when you enter interactive commands at the command prompt.

Il For ciclo è più flessibile del Foreach ciclo perché consente di incrementare i valori in una matrice o in una raccolta usando i modelli.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. Nell'esempio seguente la $i variabile viene incrementata di 2 nella parte relativa alla ripetizione dell' For istruzione.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
}

Il For ciclo può essere scritto anche su una riga, come nell'esempio seguente.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 }

VEDERE ANCHESEE ALSO

about_Comparison_Operatorsabout_Comparison_Operators

about_Foreachabout_Foreach