Articles

Powershell ForEach Loop Statement Tutorial with Examples

ForEach è un’istruzione PowerShell utilizzata per utilizzare iterate o loop sull’elenco, sull’array o sulla raccolta di oggetti, stringhe, numeri, ecc. ForEach è un meccanismo di loop molto popolare in cui possiamo utilizzare diversi casi come loop through file, Numeri, stringhe, processi, ecc. Powershell versione 4.0 porta alcuni miglioramenti delle prestazioni al cicloForEach.

Sintassi di PowerShell ForEach

L’istruzione Foreach ha la seguente sintassi in cui usiamoITEMCOLLECTION eCODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ITEM è un singolo valore o oggetto che cambia ad ogni iterazione.
  • COLLECTION è un array, una raccolta, un elenco di valori o oggetti come 1,2,3,4.
  • BLOCCO DI CODICE è il blocco in cui viene eseguita l’operazione reale che generalmente utilizza ITEM. Questo blocco può essere linee singole o multiple.

Foreach Attraverso un array di stringhe

In un modo semplice, possiamo scorrere l’elenco dato dell’array di stringhe. Ripetiamo l’array denominato “cities” che contiene più nomi di città. Stamperemo ogni nome della città con il comando “echo” come di seguito.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
ForeachThrough Un Array Di Stringhe

Possiamo vedere che ogni citta ‘ del nome è stampato il powershell terminale in una singola riga.

Foreach Attraverso una raccolta di numeri

Nell’esempio precedente, abbiamo eseguito il loop su un determinato elenco di stringhe. Possiamo anche iterare o scorrere un elenco di numeri. Creeremo un array chiamato numbers e itereremo su ogni elemento in questo array numerico.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Attraverso Un insieme Di Numeri

$_ Utilizzo

Quando si utilizzano alcuni cmdlet per reindirizzare l’output del comando per il Foreach possiamo usare “$” per ogni elemento o un oggetto. Ad esempio, se usiamo il cmdlet “Get-Process”, ogni elemento o processo verrà assegnato a $ in ogni iterazione. Possiamo specificare l’attributo come Name $.Name e stampare come di seguito.

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage

We can also print multiple attributes in foreach by delimiting them with comma.

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage

Foreach Through Files

We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItem elencherà file e cartelle come dir Comando MSDOS. Questo output verrà scritto sulla console con il comandoEcho.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Attraverso i File

Foreach Attraverso Specifiche Estensioni dei File Bat

Possiamo elencare specificamente l’estensione specificata. L’estensione fornirà generalmente il tipo di file come testo, avi, mkv, mp3, doc ecc. In questo esempio, elencheremo solo*.bat o file Bat.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach Attraverso Specifiche Estensioni dei File Bat

Possiamo vedere che solo i file come test.bat e autoexec.bat saranno elencati.

Foreach su file CSV

I file CSV vengono utilizzati per memorizzare i dati di testo in modo strutturato. Possiamo facilmente foreach in ogni riga di un file CSV come di seguito. In questo esempio, leggeremo un file CSV IP e forniremo al foreach per stampare la console Powershell.

$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *