Il ciclo For è uno dei più strumenti preziosi in qualsiasi linguaggio di programmazione e Microsoft PowerShell non è diverso. Puoi utilizzare altri cicli per ripetere i comandi, ma il ciclo For è forse il più semplice.
Dall'iterazione sugli array all'esecuzione di una funzione per un numero predeterminato di volte, ci sono molte cose che puoi ottenere con questo strumento. Ecco un tutorial su come utilizzare i cicli For in PowerShell.
A cosa servono i cicli For in PowerShell?
A differenza di Prompt dei comandi, PowerShell è un ambiente di scripting completo. Ciò significa che puoi scrivere Script di PowerShell riutilizzabile per eseguire automaticamente le attività anziché inserire i comandi manualmente. E i cicli For sono la chiave per scrivere questi moduli.
Un'istruzione For ripete un blocco di script un numero specifico di volte, modificando una determinata variabile per tenere traccia della progressione. Ciò ti consente di utilizzare il ciclo per alcuni scenari piuttosto interessanti.
Puoi generare sequenze di numeri, determinare un numero primo o visualizzare un timer per il conto alla rovescia. Più praticamente, puoi scorrere una serie di oggetti, eseguendo alcune azioni con ciascuna voce.
La sintassi di un ciclo For in PowerShell
I cicli For funzionano in Windows PowerShell allo stesso modo in cui funzionano in qualsiasi linguaggio di programmazione. Le espressioni che inizializzano la variabile di tracciamento, ne testano il valore e modificano la variabile sono racchiuse tra parentesi che seguono "For", separate da punto e virgola. Poi arriva l'elenco delle istruzioni racchiuso tra parentesi graffe.
Per (Inizializzazione; Condizione; Aggiornamento)
<
Blocco script
}
Come utilizzare il ciclo For in uno script di PowerShell
Utilizzare il ciclo For è piuttosto semplice. Ogni volta che ti trovi in una situazione che richiede la ripetizione di un passaggio leggermente diverso, dovresti inserirla in un ciclo For.
Supponiamo che tu debba scrivere uno snippet di codice in grado di trovare la somma di tutti i numeri naturali fino al numero n, contenuto nella variabile $n. Ecco un esempio di ciclo For di base:
$n = 10
$somma = 0
Per ($i = 1 ; $i -le $n ; $i++)
<
$somma = $somma + $i
}
“La somma di $n numeri naturali è $somma”
Accesso agli array tramite un ciclo For
.Generare sequenze numeriche non è certo ciò per cui la maggior parte delle persone utilizza PowerShell. Un utilizzo più comune è eseguire l'iterazione su un array.
Supponiamo che tu abbia un array $week con sette elementi. Puoi restituire l'elenco dei giorni contenuti nell'array utilizzando un semplice ciclo For, come dimostrato nell'esempio seguente.
Per ($i = 0 ; $i -lt $settimana.Lunghezza ; $i++)
<
$settimana[$i]
}
Utilizzo del ciclo ForEach per scorrere rapidamente un array
Un'altra forma del ciclo For è l'istruzione ForEach. Questa versione semplifica l'esame dei contenuti di un array di PowerShell e la loro elaborazione individualmente. Il frammento di codice precedente, ad esempio, può essere riscritto in questo modo:
Foreach ($giorno in $settimana)
<
$giorno
}
Quando hai a che fare con oggetti più complessi, puoi anche utilizzare il cmdlet Foreach-Object per eseguire un'azione sul contenuto di qualsiasi comando di PowerShell.
In che cosa il ciclo For è diverso dagli altri tipi di cicli?
Il ciclo For non è l'unico tipo di istruzione di loop a tua disposizione. Come la maggior parte dei linguaggi di programmazione, PowerShell ha diversi tipi di loop.
Mentre
Il più semplice di questi è il ciclo While. Tutto ciò che hai è una condizione e un blocco di script e il ciclo viene eseguito finché l'espressione di test risulta vera. Poiché l'espressione viene valutata per prima, esiste la possibilità che il codice non venga eseguito affatto o finisca in un ciclo infinito.
Mentre (Condizione)
<
Blocco script
}
Fai mentre
Se stai scrivendo uno script che deve essere eseguito almeno una volta, anche se l'espressione restituisce false, puoi utilizzare il ciclo Do-While. L'unica differenza rispetto al ciclo While è che posiziona il blocco di comandi prima della condizione, il che significa che il codice viene eseguito prima che l'espressione di test venga controllata per la prima volta.
Fai {
Blocco script
}
Mentre (Condizione)
Da fare fino a
Un'altra versione di questo ciclo è Do-Until. Fondamentalmente, esegue il blocco di codice e poi lo ripete finché l'espressione di test non diventa vera, il contrario di un ciclo Do-While. Non è una struttura particolarmente utile, poiché puoi ottenere la stessa cosa modificando la condizione in un ciclo Do-While standard..
Fai {
Blocco script
}
Fino al (Condizione)
Perché il ciclo For è migliore
Il problema con tutte queste altre strutture in loop è che non includono il valore iniziale o le istruzioni di aggiornamento. Devi ricordarti manualmente di creare una variabile all'esterno del ciclo e quindi incrementarla (o decrementarla) durante ogni passaggio del ciclo.
Come prevedibile, i programmatori spesso dimenticano questo passaggio, il che porta a uno script che non funziona come previsto. Ciò fa perdere tempo prezioso nel debug.
Il ciclo For evita questo problema richiedendo l'inizializzazione e le espressioni di incremento all'interno delle parentesi iniziali. Ciò porta a script più puliti e robusti.
Quando dovresti utilizzare il ciclo For in PowerShell?
PowerShell è incentrato sulla creazione di script per l'automazione. E probabilmente lo strumento più utile per raggiungere questo obiettivo è il ciclo For. Puoi usarlo per sostituire molte operazioni di copia-incolla con uno script più compatto ed elegante.
La funzione più comune di questo ciclo è scorrere un array, una voce alla volta. Per uno script ancora più snello, puoi utilizzare anche un ciclo ForEach. Puoi anche utilizzare il ciclo For per generare sequenze numeriche, anche se raramente è necessario.
Il ciclo For supera altri algoritmi di looping includendo tutte le funzioni essenziali di un ciclo nei parametri, prevenendo eventuali errori dovuti alla dimenticanza di tali istruzioni. Ciò rende il ciclo For indispensabile in qualsiasi scenario che richieda la ripetizione di una serie di comandi.
.