about_For
Descrizione breve
Descrive un comando di linguaggio che è possibile usare per eseguire istruzioni basate su un test condizionale.
Descrizione lunga
L'istruzione For
(nota anche come For
ciclo) è un costrutto di linguaggio che è possibile usare per creare un ciclo che esegue comandi in un blocco di comandi mentre una condizione specificata restituisce $true
.
Un uso tipico del ciclo consiste nell'iterazione For
di una matrice di valori e nell'operare su un subset di questi valori. Nella maggior parte dei casi, se si desidera eseguire l'iterazione di tutti i valori in una matrice, è consigliabile usare un'istruzione Foreach
.
Sintassi
Di seguito viene illustrata la sintassi dell'istruzione For
.
for (<Init>; <Condition>; <Repeat>)
{
<Statement list>
}
Il segnaposto Init rappresenta uno o più comandi eseguiti prima dell'inizio del ciclo. In genere si usa la parte Init dell'istruzione per creare e inizializzare una variabile con un valore iniziale.
Questa variabile sarà quindi la base per la condizione da testare nella parte successiva dell'istruzione For
.
Il segnaposto Condition rappresenta la parte dell'istruzione For
che viene risolta in un $true
valore booleano o $false
. PowerShell valuta la condizione ogni volta che viene eseguito il For
ciclo. Se l'istruzione è $true
, i comandi nel blocco di comandi vengono eseguiti e l'istruzione viene valutata di nuovo. Se la condizione è ancora $true
, i comandi nell'elenco Istruzioni vengono eseguiti di nuovo.
Il ciclo viene ripetuto fino a quando la condizione non diventa $false
.
Il segnaposto Repeat rappresenta uno o più comandi, separati da virgole, che vengono eseguiti ogni volta che il ciclo viene ripetuto. In genere, viene usato per modificare una variabile testata all'interno della parte Condition dell'istruzione .
Il segnaposto elenco istruzioni rappresenta un set di uno o più comandi eseguiti ogni volta che il ciclo viene immesso o ripetuto. Il contenuto dell'elenco Istruzioni è racchiuso tra parentesi graffe.
Supporto per più operazioni
Le sintassi seguenti sono supportate per più operazioni di assegnazione nell'istruzione Init :
# 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"
}
Le sintassi seguenti sono supportate per più operazioni di assegnazione nell'istruzione Repeat :
# 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"
}
Nota
Le operazioni diverse da pre o post increment possono non funzionare con tutte le sintassi.
Per più condizioni usare operatori logici, come illustrato nell'esempio seguente.
for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
"`$i:$i"
"`$j:$j"
}
Per altre informazioni, vedere about_Logical_Operators.
Esempi
Come minimo, un'istruzione For
richiede la parentesi che circonda la parte Init, Condition e Repeat dell'istruzione e un comando racchiuso tra parentesi graffe nella parte dell'elencoIstruzioni dell'istruzione.
Si noti che gli esempi futuri mostrano intenzionalmente il codice all'esterno dell'istruzione For
. Negli esempi successivi il codice è integrato nell'istruzione For
.
Ad esempio, l'istruzione seguente For
visualizza continuamente il valore della $i
variabile fino a quando non si interrompe manualmente il comando premendo 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 seguente.
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 incrementato di 1 ogni volta che viene eseguito il ciclo.
Anziché modificare il valore della variabile nella parte dell'elenco di istruzioni dell'istruzione For
, è possibile usare invece la parte Repeat dell'istruzione For
, come indicato di seguito.
$i=1
for (;;$i++)
{
Write-Host $i
}
Questa istruzione verrà ripetuta a tempo indeterminato fino a quando non si interrompe il comando premendo CTRL+C.
È possibile terminare il For
ciclo usando una condizione. È possibile inserire una condizione usando la parte Condizione dell'istruzione For
. Il For
ciclo termina quando la condizione restituisce $false
.
Nell'esempio seguente il For
ciclo viene eseguito mentre il valore di $i
è minore o uguale a 10.
$i=1
for(;$i -le 10;$i++)
{
Write-Host $i
}
Anziché creare e inizializzare la variabile all'esterno dell'istruzione For
, è possibile eseguire questa attività all'interno del For
ciclo usando la parte Init dell'istruzione For
.
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'istruzione For
. Nell'esempio seguente viene illustrato un For
oggetto che usa questa sintassi alternativa.
for ($i = 0
$i -lt 10
$i++){
$i
}
Questa forma alternativa dell'istruzione For
funziona nei file di script di PowerShell e al prompt dei comandi di PowerShell. Tuttavia, è più semplice usare la sintassi dell'istruzione For
con punti e virgola quando si immettono comandi interattivi al prompt dei comandi.
Il For
ciclo è più flessibile del Foreach
ciclo perché consente di incrementare i valori in una matrice o in una raccolta usando i criteri. Nell'esempio seguente la $i
variabile viene incrementata di 2 nella parte Repeat dell'istruzione For
.
for ($i = 0; $i -le 20; $i += 2)
{
Write-Host $i
}
Il For
ciclo può anche essere scritto su una riga come nell'esempio seguente.
for ($i = 0; $i -lt 10; $i++) { Write-Host $i }
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per