PowerShell Foreach Loop

PowerShell Foreach Loop
En programmation, une boucle est un concept simple mais puissant. Une boucle est la répétition d'un ensemble d'instructions à moins qu'une certaine condition ne soit remplie. Une boucle appropriée peut gagner du temps et augmenter l'efficacité d'un code. PowerShell, étant un langage de script, soutient diverses formes de boucles.

Dans ce guide, consultez comment utiliser la boucle foreach dans PowerShell.

Boucles PowerShell

En principe, toutes les boucles sont les mêmes. Cependant, pour une meilleure expérience de codage et la lisibilité, divers langages de programmation implémentent le concept de boucle de différentes manières. En fait, la même langue peut prendre en charge plusieurs types de boucles, chacune avec sa structure unique.

PowerShell soutient plusieurs types de boucles.

  • Pour: une boucle standard pour exécuter certaines tâches un nombre spécifique de fois.
  • tandis que: il continue d'effectuer un ensemble d'opérations jusqu'à ce que les conditions soient remplies.
  • FAITES QUE: La boucle continue de fonctionner tant que la condition est vraie. Cependant, il exécutera toujours la première fois.
  • Do-tant: cela fonctionne presque similaire à faire. La seule différence est qu'elle ne s'exécutera que si la condition donnée n'est pas vraie.
  • ForEach-Object: cette boucle effectue une opération pour chaque objet d'entrée.

Comme le titre de l'article le suggère, nous examinerons la boucle foreach.

Forach Loop à PowerShell

Le code de la structure de boucle foreach est le suivant.

Foreach (article en collection)


Ici,

  • Élément: c'est une seule valeur ou un objet qui change avec chaque itération.
  • Collection: il peut s'agir d'un tableau, d'une liste de valeurs, de collecte ou d'objets.
  • : C'est le bloc de code qui s'exécute une fois la condition de boucle remplie. Il utilise généralement l'article.

Forach est l'une des boucles de powerShell les plus courantes et les plus simples. Il lit une collection entière d'articles, et pour chaque élément, il effectue les opérations définies.

Il peut être utilisé pour de nombreuses situations, par exemple, en travaillant le contenu d'un répertoire.

Boucle foreach dans la pratique

Dans cette section, nous allons jeter un œil à quelques exemples d'implémentations de la boucle foreach. Pour exécuter les codes, j'ai déjà préparé un script PowerShell vide.

$ nano foreach-boucle.PS1

Le shebang ressemblerait à quelque chose comme ça.

$ #!/ snap / bin / powershell

Marquez le fichier de script PowerShell comme exécutable.

$ chmod + x foreach-boucle.PS1

Forach via un tableau de cordes
Dans la première démonstration, nous mettons en œuvre une boucle FOREACH qui se lit dans une gamme de cordes de noms de ville et imprime les noms de la ville à l'écran.

Tout d'abord, déclarez le tableau des chaînes.

$ Cities = ("Tokyo", "New York", "Moscou", "Londres", "Sydney")

Maintenant, implémentez la boucle foreach pour travailler avec chaque élément du tableau.

foreach ($ City in $ Cities)

Echo $ City

Testez le code en exécutant le script.

$ ./ Foreach-Boop.PS1

Forach par une collection de nombres
Dans cet exemple, nous implémenterons la boucle foreach similaire à la précédente. La différence est qu'il passera à la place un tableau de nombres.

Déclarer le tableau des nombres.

$ Nombres = (9,8,7,6,5,4,3,2,1)

Maintenant, implémentez la boucle foreach pour imprimer les numéros un par un.

foreach (numéro $ en nombre $)

numéro d'écho $

Mettez le code en action.

$ ./ Foreach-Boop.PS1

Forach via les fichiers
C'est l'un des scénarios les plus courants à utiliser. Avec l'aide d'autres applets de commande, nous pouvons obtenir des informations spécifiques sur certains répertoires / fichiers et utiliser ces informations pour effectuer les actions nécessaires.

Dans cet exemple, la boucle Foreach vérifiera le contenu d'un répertoire / domestique / viktor / bureau / samptab.

foreach ($ Fichier dans Get-Childem -recurse -Path / Home / Viktor / Desktop / Sample_Dir)

Fichier Echo $

Exécuter le code.

$ ./ Foreach-Boop.PS1

Ici, la cmdlet Get-Childitem Obtient les articles sur l'emplacement décrit. Le drapeau «-Path» décrit dans quel répertoire examiner. S'il y a plusieurs niveaux de sous-répertoires, alors l'utilisation de «-recurse» obtiendra tous les éléments enfants récursivement. Si vous souhaitez reprendre une certaine profondeur, vous pouvez également utiliser le paramètre «-depth». Découvrez plus sur Get-Childitem.

Nous pouvons également affiner le code pour rechercher uniquement des extensions de fichiers spécifiques.

foreach ($ fichier dans get-childem -recurse -path / home / viktor / busktop / samptample_dir / *.SMS)

Fichier Echo $

Forach sur CSV
Un fichier CSV est une base de données de texte de valeurs, chaque valeur séparée par un délimiteur (virgule, principalement). C'est une structure simple mais efficace pour stocker des données structurées au format texte. Le format CSV est utilisé par diverses applications et moteurs de base de données pour la commodité et la facilité d'utilisation.

Nous pouvons utiliser la boucle foreach pour travailler avec les valeurs individuelles d'un fichier CSV et prendre des mesures en conséquence. L'exemple suivant fait exactement cela.

$ valeurs = (get-content / home / viktor / échantillon.csv) [0].diviser(",")
foreach ($ valeur dans $ valeurs)
Echo $ valeur

Méthode foreach
Jusqu'à présent, nous avons vu la boucle FOREAK en action, à droite? Dans PowerShell, il apparaît également comme la méthode foreach (). À partir de PowerShell V4, cette méthode existe sur les tableaux ou les collections d'objets. La méthode a un bloc de script standard comme paramètre qui contient les actions à prendre pour chaque itération.

Jetons un coup d'œil à la méthode foreach () en action. Tout d'abord, créez un échantillon de tableau.

$ Nombres = (2,4,8,16,32,64,128,256,512)

Maintenant, nous pouvons appeler la méthode et décrire une commande d'écho simple par itération.

Nombres $.Pour chaque(
echo $ _
)

Objet foreach
La boucle foreach peut également fonctionner directement avec des objets. Pour ce faire, il y a une applet de commande dédiée nommée ForEach-Object. Il prend un objet comme entrée et itéère à travers ses éléments.

Dans l'exemple suivant, nous rechercherons dans un répertoire spécifique pour «.TXT ”Files et utilisez ForEach-Object pour agir en fonction de chaque élément du résultat de la recherche.

$ names = get-childem -recurse / home / viktor / Desktop / samptample_dir / *.SMS
$ noms |
Foreach-object
echo $ _

Comme vous pouvez le voir, la structure centrale de ForEach-Object est assez similaire. La seule différence est que vous pouvez passer l'objet à l'aide de la tuyauterie.

Dernières pensées

La boucle FOREAK à PowerShell est une boucle simple mais efficace et puissante. Il peut fonctionner en fonction des objets, des tableaux ou des éléments individuels. Ce guide démontre certaines des implémentations communes de la boucle FOREAK.

Outre la boucle Foreach, PowerShell prend en charge d'autres boucles standard, comme la boucle pour une boucle. Consultez ce guide pour Loop dans PowerShell.

Happy Computing!