Introduzione a PowerShell ForEach Loop

Comprensione di ForEach Loop in PowerShell, ForEach e forLoop entrambi eseguono gli stessi compiti, entrambi servono per manipolare ed eseguire lo stesso pezzo di codice su base ripetitiva. Se stai leggendo ogni elemento di un array o potrebbe leggere ogni riga di un file, in tale tipo di condizione utilizziamo foreach. Ad esempio, un array contenente utenti e vogliamo controllare l'utente con il nome "Vijay", quindi dobbiamo controllare ogni elemento e per questo, abbiamo bisogno di un ciclo "foreach" e una volta che il ciclo trovato dall'utente "Vijay" verrà chiuso. Se è necessario esaminare l'attributo della città di ciascun utente prima di intraprendere un'azione, è possibile utilizzare ForEach Loop ed è possibile eseguire il rispettivo lavoro su ciascuna città. Per ciascuno risparmia poca memoria e tempo rispetto a per loop. In PowerShell 4.0 e versioni successive, il metodo ForEach fornisce prestazioni ancora più veloci.

Sintassi di ForEach Loop

Di seguito è la sintassi

foreach ($ in $)
(


)

Nella sintassi sopra, possiamo vedere, ogni volta che un oggetto da Actualarray verrà scelto e quell'oggetto andrà per l'elaborazione all'interno del ciclo foreach. Se $ è vuoto o non contiene alcun elemento al suo interno, non andrà per l'esecuzione delle istruzioni. PowerShell crea automaticamente la variabile $ quando viene eseguito il ciclo Foreach. Ad esempio, il ciclo Foreach nell'esempio seguente visualizza i valori nella matrice $ studenti. Nel ciclo for, dovevamo scrivere la logica per verificare se l'array è vuoto o meno, il ciclo foreach esegue il blocco istruzioni se vi sono elementi all'interno dell'array.

Codice:

$students = ""
PS /home/ranjan> foreach ($student in $students)
(
Write-Host $student
)
output nothing, which means checking of array elements attributes are done internally by foreach loops.
$students = "ajay", "vijay", "ranjan", "akash", ”vikash”
foreach ($student in $students)
(
Write-Host $student
)

Schermate di output e codice:

Diagramma di flusso per PowerShell ForEach Loop

Di seguito è riportato il diagramma di flusso per PowerShell ForEach Loop:

Spiegazione del diagramma di flusso sopra: Il diagramma di flusso sopra rappresenta molto chiaramente il flusso. Una volta avviata l'esecuzione, controllerà i dati (controllando se l'elemento è presente nell'array) se il suo ciclo vuoto si interromperà. Ma se Data è presente continuerà l'esecuzione ed eseguirà l'istruzione 1, l'istruzione 2, l'istruzione 3 fino all'ultimo dato dell'array. Una volta che l'array ottiene un ciclo vuoto, interrompere l'esecuzione.

Produzione:

Spiegazione dell'output sopra: Sopra lo schermo mostra, se c'erano due attributi all'interno dell'array, veniva stampato due volte, ciao, ma se rendessimo $ studenti un array vuoto senza stampa hello, ciò significa che in caso di qualsiasi attributo sia disponibile all'interno di $ array di studenti di quello che sta per eseguire il blocco di istruzioni, altrimenti non è in esecuzione.

Come funziona ForEach Loop in PowerShell?

Supponiamo di avere 4 elementi e di voler moltiplicare ogni numero per cinque. Supponiamo di avere $ a, $ b, $ c, $ d e dobbiamo moltiplicare ciascuno con 5, quindi cosa faremo, guarda sotto l'esempio:

Codice d'esempio:

$a=2, $b=4, $c=9, $d=5
$a * 5 =10, $b * $5=20, $c * 5=45, $d*5=25

Quindi abbiamo ottenuto il nostro risultato. Ma è stato positivo finché non avremo solo 4 elementi da moltiplicare per 5, supponiamo che ci saranno 10000 elementi che devono moltiplicarsi per 5, quindi sarebbe un compito molto noioso scrivere per ciascuno.

Quindi quale sarebbe una soluzione facile per questo? Tutto quello che dobbiamo fare è, dovremmo creare un array con tutti i nostri elementi e passare l'array per foreach e moltiplicare ogni elemento per 5. Per moltiplicare il numero cinque per ciascuno degli elementi dell'array, dobbiamo attraversare l'array usando il comando ForEach.

Ecco l'intero script:

Codice:

$a = 2, $b = 4, $c = 9, $d =5
$f = $a, $b, $c, $d
Foreach ($i in $f)
(
$i * 5
)

Produzione:

Spiegazione del codice sopra: negli esempi sopra possiamo vedere, abbiamo definito un'altra variabile $ f e le abbiamo assegnato tutte e 4 le variabili, il che lo rende un array. Infine, lo passiamo dal ciclo foreach che ci ha dato un risultato di 10, 20, 45, 25. In questo modo stiamo semplificando la nostra vita, poiché nella vita reale ci sarebbero centinaia di dischi che devono essere modificati, quindi non possiamo farlo uno per uno, quindi stiamo usando il ciclo foreach per affrontarli. Basta eseguire una volta e modificare il numero di record desiderato.

Esempi in PowerShell ForEach Loop

Di seguito è riportato l'esempio in PowerShell ForEach Loop:

Esempio 1

Passa attraverso una matrice di stringhe che contengono i nomi degli studenti e trova la lunghezza di ciascuna stringa all'interno della matrice.

Codice:

$students = @("Ranjan", "Ajay", ”Vijay", "Sujit", "John", "Rakesh", ”Hari”)
foreach ($student in $students) (
"$student = " + $student.length
)

Uscita: Ranjan = 6, Ajay = 4, Vijay = 5, Sujit = 5, John = 4, Rakesh = 6, Hari = 4.

Esempio n. 2

Permettetemi di darvi un esempio di vita reale, negli esami, avete visto 30 segni su 100 usati per passare i voti. Supponiamo quindi che ci siano dei gruppi di studenti e che una regola se uno studente ottiene 27 punti gli dia 30 punti, ciò significa semplicemente aggiungere 3 punti extra nei suoi 27 punti. Quindi eseguiamo un ciclo attraverso una serie di voti degli studenti e aggiungiamo 3 voti se i loro voti sono 27 e li lasciamo passare negli esami poiché 30 voti sono voti positivi.

Codice:

$marks (34, 39, 49, 12, 27, 80, 23, 88, 27)
foreach ($mark in $marks) (
if ($mark -eq 27) ( $mark+3 ) else( $num)
)

Risultato: c'erano due studenti, ma controllare manualmente in centinaia di migliaia di studenti è stato un compito un po 'noioso che abbiamo risolto.

Esempio n. 3

Un altro esempio, trova tutti i numeri tra 1 e 100 che sono completamente divisibili per 10.

Codice:

$numbers (1..100)
foreach ($number in $numbers)
(
if ( -not ($number % 10) )
(
"$number is totally divisible by 10"
)
)
10 is totally divisible by 10
20 is totally divisible by 10
30 is totally divisible by 10
40 is totally divisible by 10
50 is totally divisible by 10
60 is totally divisible by 10
70 is totally divisible by 10
80 is totally divisible by 10
90 is totally divisible by 10
100 is totally divisible by 10

Produzione:

Conclusione

Per concludere, un'istruzione loop foreach ci consente di eseguire più volte un'istruzione o un gruppo di istruzioni insieme alla verifica della disponibilità degli elementi nell'array, il che significa eseguire l'istruzione successiva se ci sono elementi. I cicli Foreach vengono eseguiti solo se all'interno dell'array sono presenti elementi, il che lo rende diverso rispetto a loop.

Articoli consigliati

Questa è una guida a PowerShell ForEach Loop. Qui discutiamo come funziona ForEach Loop in PowerShell?, con diversi esempi. Puoi anche consultare i nostri altri articoli correlati per saperne di più -

  1. Per Loop in R
  2. Cos'è PowerShell
  3. Usi di Powershell
  4. Come installare PowerShell
  5. Matrice in PowerShell | Esempi

Categoria: