Articles

Tutoriel d’instruction de Boucle Powershell ForEach avec des Exemples

ForEach est une instruction PowerShell utilisée pour utiliser l’itération ou la boucle sur la liste, le tableau ou la collection donnés des objets, des chaînes, des nombres, etc. ForEach est un mécanisme de boucle très populaire où nous pouvons utiliser différents cas comme la boucle à travers des fichiers, des nombres, des chaînes, des Processus, etc. La version 4.0 de Powershell apporte quelques améliorations de performances à la boucle ForEach.

Syntaxe PowerShell ForEach

L’instruction Foreach a la syntaxe suivante où nous utilisons ITEMCOLLECTION et CODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • L’élément est une valeur ou un objet unique qui change à chaque itération.
  • COLLECTION est un tableau, une collection, une liste de valeurs ou d’objets tels que 1,2,3,4.
  • LE BLOC DE CODE est le bloc où s’exécute l’opération réelle qui utilise généralement ITEM. Ce bloc peut être une ou plusieurs lignes.

Foreach À Travers Un Tableau de Chaînes

De manière simple, nous pouvons parcourir la liste donnée du tableau de chaînes. Nous parcourons le tableau nommé « villes » qui contient plusieurs noms de villes. Nous imprimerons chaque nom de ville avec la commande « echo » comme ci-dessous.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
Pour Un Tableau De Chaînes

Nous pouvons assurez-vous que chaque nom de ville est imprimé sur le terminal Powershell en une seule ligne.

Foreach À Travers Une Collection de Nombres

Dans l’exemple précédent, nous avons bouclé une liste donnée de chaînes. Nous pouvons également itérer ou parcourir une liste de nombres. Nous allons créer un tableau nommé numbers et itérer sur chaque élément de ce tableau de nombres.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Pour Chaque Ensemble De Nombres

Usage_Utilisation

Lorsque vous utilisez certaines applets de commande pour rediriger la sortie de l’applet de commande vers le Foreach, nous pouvons utiliser « $” pour chaque élément ou objet. Par exemple, si nous utilisons l’applet de commande « Get-Process”, chaque élément ou processus sera affecté au $ à chaque itération. Nous pouvons spécifier l’attribut comme Name $.Name et imprimer comme ci-dessous.

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 listera les fichiers et dossiers comme la commande MSDOS dir. Cette sortie sera écrite sur la console avec la commande Echo.

foreach($file in Get-ChildItem) {Echo $file}
Pour tous les fichiers

Pour chaque Extension de fichier Spécifique Comme Bat

, Nous pouvons lister spécifiquement l’extension spécifiée. L’extension fournira généralement le type de fichier comme text, avi, mkv, mp3, doc, etc. Dans cet exemple, nous listerons uniquement les fichiers *.bat ou les fichiers Bat.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Pour Chaque Extension De Fichier Spécifique Comme Bat

Nous pouvons voir que seuls les fichiers tels que test.bat et autoexec.bat seront répertoriés.

Pour chaque fichier CSV

Les fichiers CSV sont utilisés pour stocker des données texte de manière structurée. Nous pouvons facilement foreach dans chaque ligne d’un fichier CSV comme ci-dessous. Dans cet exemple, nous allons lire un fichier CSV IP et le fournir à foreach pour imprimer la console Powershell.

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *