Comment utiliser Powershell Get-Content et ForEach avec des exemples

17 juin 2021 16866 Vues PowerShell Try Catch Exemples

Cette zone S vous apprend à combiner PowerShell Get-Content avec la boucle ForEach. Vous pouvez utiliser Get-Content pour répertorier le contenu d'un fichier texte, puis utiliser l'instruction ForEach pour itérer le contenu du fichier texte.





formule 1 sur kodi

Il existe 3 variantes de PowerShell ForEach. Il y a l'instruction ForEach et la méthode ForEach.
En outre, il existe l'applet de commande ForEach-Object.



Ce guide commence par discuter de la commande Get-Content - sa syntaxe, ses paramètres et quelques exemples.

Ensuite, dans les parties restantes du guide, vous apprendrez à utiliser chacune des 3 variantes de PowerShell ForEach et Get-Content. Pour chaque variante de ForEach, je discuterai de sa syntaxe.



Enfin, je montrerai plusieurs exemples d'utilisation de la variante PowerShell ForEach et de Get-Content.



Parcourir les sujets de publication

Commande Get-Content : syntaxe, paramètres, exemples

Commande Get-Content : syntaxe, paramètres, exemples

Comme je l'ai mentionné dans mon introduction, avant de pouvoir utiliser PowerShell ForEach pour itérer le contenu d'un fichier, vous devez d'abord importer le contenu du fichier texte dans PowerShell.



L'applet de commande Get-Content est utilisée pour répertorier ou importer le contenu d'un fichier texte dans PowerShell.



Dans cette section, nous examinerons la syntaxe et les paramètres de Get-Content. Je terminerai la section avec quelques exemples.

Syntaxe et paramètres de la commande Get-Content

La syntaxe simplifiée de la commande Get-Content est…

|__+_|

Get-Content a beaucoup plus de paramètres. J'ai spécifié les paramètres couramment utilisés.

Utilisez le - Chemin paramètre pour spécifier le chemin complet () vers le fichier texte. Vous devez inclure l'extension du fichier texte (.txt).

le Chemin Le paramètre est en position 0, vous n'avez donc pas besoin de le spécifier. Vous pouvez simplement entrer la valeur immédiatement après Get-Content. Pour en savoir plus sur les paramètres PowerShell, lisez notre guide - PowerShell Param Parameter Attribute

Exemples de commandes Get-Content

La capture d'écran ci-dessous est une liste de serveurs. Pour importer le contenu du fichier texte dans PowerShell, je vais exécuter la commande ci-dessous…

|__+_|

La commande affiche la liste des serveurs dans le fichier texte.

Comment utiliser l'instruction PowerShell ForEach avec Get-Content

Comment utiliser PowerShell ForEach Loop avec Get-Content

Dans cette section, vous apprendrez à canaliser le résultat de Obtenir du contenu dans Pour chaque Boucler. Ensuite, au sein du Pour chaque Bloc de boucle, effectuer des tâches spécifiques.

La section commence par discuter de la syntaxe de PowerShell ForEach Loop.

Syntaxe de l'instruction PowerShell ForEach

Une instruction PowerShell ForEach effectue une opération sur chaque élément d'une collection d'objets d'entrée. Pour les besoins de ce guide, l'opération sera effectuée sur les éléments d'un fichier texte.

La syntaxe de ForEach Statement est :

|__+_|

Comme prévu, la syntaxe commencera par 'ForEach'. Il est ensuite suivi de parenthèses ‘()’ ; et enfin le bloc ‘{}’.

Dans la première section de ce guide, j'ai donné un exemple d'importation du contenu d'un fichier texte avec Obtenir du contenu . Voici la commande…

|__+_|

Si nous l'incluons dans la syntaxe de l'instruction ForEach, l'instruction ForEach sera mise à jour comme indiqué ci-dessous :

|__+_|

Dans la syntaxe de l'instruction ForEach mise à jour, j'ai remplacé le $collection variables avec Get-Content D:PS-TutorialS ZonesS Zones-Servers.txt commander.

De plus, nous pouvons enregistrer cette commande dans le $collection variable…

|__+_|

Ensuite, nous pouvons utiliser la version simplifiée de la syntaxe de l'instruction ForEach…

comment utiliser acestream
|__+_|

Pour en savoir plus sur cette puissante instruction PS, cliquez sur PowerShell ForEach : Syntax, Parameters, Examples .

Dans les sous-sections restantes de cette section, je donnerai d'autres exemples.

Comment itérer un fichier texte avec l'instruction ForEach

Dans cette sous-section, je vais ajouter quelques commandes au bloc de commande de l'instruction ForEach. Voici les commandes mises à jour.

|__+_|

Si j'exécute le script dans PowerShell ISE , il affiche le contenu du fichier texte.

Dans la première ligne du script, j'ai utilisé Get-Content pour importer le contenu du fichier texte dans PowerShell ; puis j'ai utilisé l'instruction PowerShell ForEach pour itérer le contenu et les lister avec la commande, write-host $item.

Comment combiner PowerShell Get-ChildItem, ForEach Loop et Get-Content

Si vous avez plusieurs fichiers texte dans un dossier, vous devez d'abord obtenir le chemin d'accès complet aux fichiers texte. Pour obtenir le chemin complet des fichiers texte, vous avez besoin de la commande Get-ChildItem.

Pour illustrer cela, j'ai créé deux fichiers texte dans un dossier. Voir la capture d'écran ci-dessous…

Comment combiner PowerShell Get-ChildItem, ForEach Loop et Get-Content

Comme je l'ai mentionné plus tôt, la première étape consiste à obtenir le chemin d'accès à tous les fichiers texte du dossier. Voici la commande qui fait ce travail…

|__+_|

La commande répertorie le chemin complet vers les fichiers texte…

Cependant, si vous avez d'autres éléments dans le dossier, par exemple des sous-dossiers et d'autres types de fichiers, vous devez améliorer la commande pour ne renvoyer que des fichiers texte…

|__+_| J'ai enregistré le résultat de la commande dans une variable pour raccourcir les commandes suivantes.

Maintenant que nous avons les chemins d'accès à tous les fichiers texte du dossier, l'étape suivante consiste à utiliser Get-Content pour répertorier le contenu de chaque fichier texte. Cependant, comme il existe plusieurs fichiers texte, nous devons utiliser l'instruction ForEach.

|__+_|

Voici le résultat du script dans PowerShell ISE…

Comment combiner PowerShell Get-ChildItem, ForEach Loop et Get-Content

Comment créer des dossiers avec le contenu d'un fichier texte

Dans cette sous-section, vous apprendrez à créer des dossiers avec le contenu d'un fichier texte.

Pour le démontrer, j'ai un fichier texte avec des noms.

J'utiliserai Get-Content pour importer le contenu du fichier texte dans PowerShell ; puis utilisez le bloc d'instructions ForEach pour itérer le contenu des fichiers texte.

Enfin, dans le bloc d'instructions ForEach, j'utiliserai appréciation commande pour créer des dossiers avec le contenu du fichier texte.

Cependant, au lieu de séparer les commandes comme nous l'avons fait jusqu'à présent, je vais combiner toutes les commandes. Voici le scénario…

|__+_|

Dans cette commande, j'ai utilisé les commandes de l'invite de commande Windows, CD et mkdir . Voici la version PowerShell de la commande…

|__+_|

Et voici le résultat dans PoweShell ISE :

Alternativement, si vous ne voulez pas que les informations sur les dossiers créés s'affichent, redirigez la sortie du Nouvel article commande à Out-Null .

Le script ressemblera maintenant à ceci…

|__+_|

Comment diviser, puis joindre le contenu d'un fichier texte avec l'instruction Get-Content et ForEach

En recherchant cet article, je suis tombé sur ceci stackoverflow.com question. La personne qui a posé la question dispose d'un fichier texte contenant les chaînes suivantes :

|__+_|

Cependant, la personne souhaite modifier les chaînes pour qu'elles ressemblent à ceci :

|__+_|

Pour reproduire cette situation, j'ai créé un fichier texte avec les chaînes d'origine. Ensuite, j'ai créé un court script qui permettra d'obtenir le résultat requis.

Voici le scénario.

|__+_|

La première et la deuxième ligne sont relativement simples. À la ligne 1, j'ai enregistré le chemin du fichier texte dans une variable.

Puis, à la ligne 2, j'ai utilisé Obtenir du contenu pour importer le contenu du fichier texte dans PowerShell et enregistrer le résultat dans une autre variable.

Enfin, aux lignes 3, 4 et 5, j'ai utilisé le résultat de la Obtenir du contenu commande dans une instruction PowerShell ForEach. J'ai enregistré le résultat de l'instruction ForEach dans une autre variable.

Le plus important de l'instruction ForEach est ce que j'ai dans le bloc de commande…

|__+_|

La première partie de la commande utilise la méthode PowerShell Split pour casser le contenu du fichier texte. Voici la commande…

|__+_|

Ce que fait cette commande, c'est casser les chaînes dans le fichier texte à l'emplacement | personnage. Pour vous aider à comprendre cela, voici les chaînes d'origine dans le fichier texte.

|__+_|

Le résultat de la commande split crée les chaînes individuelles suivantes :

|__+_|

Lorsque PowerShell split crée des chaînes individuelles comme celle-ci, chaque élément est représenté par un numéro de position, à partir de 0 (zéro). Ainsi, vous pouvez accéder à la première chaîne, 80055555 avec [0], le second avec [1], etc.

Avant d'expliquer la partie suivante de la commande, voyons la sortie que nous voulons obtenir. C'est ici…

comment définir une macro sur un clavier
|__+_|

Si nous devions casser cette sortie avec PowerShell Split, nous y parviendrons…

|__+_|

Si vous comparez cela au résultat lorsque nous divisons la chaîne d'origine, vous remarquez que la sous-chaîne en position 4 du fichier texte d'origine ( DCDOCS ) est maintenant en position 2. Toutes les autres sous-chaînes ont conservé leur position d'origine.

C'est là que le travail du deuxième bit de la commande s'affiche…

|__+_|

Cette commande signifie simplement…

|__+_| J'ai inclus les virgules (,) pour séparer les sous-chaînes à des fins d'illustration. La commande n'inclut pas les virgules.

Jusqu'à présent, j'ai expliqué cette commande ..

|__+_|

Jusqu'à ce point…

|__+_|

Le dernier bit utilise PowerShell Join Operator pour insérer le caractère d'origine |, entre la nouvelle chaîne créée par cette commande…

|__+_|

Dans les derniers paragraphes, j'ai expliqué la ligne 4 de ce script.

|__+_|

Enfin, à la ligne 6, j'ai canalisé la sortie de la nouvelle chaîne enregistrée dans nouveau fichier variable en Contenu de l'ensemble . Contenu de l'ensemble remplace le fichier d'origine par la nouvelle chaîne.

Ceci est un brillant exemple de la façon dont vous pouvez combiner Get-Content avec l'instruction PowerShell ForEach !

Comment utiliser la méthode PowerShell ForEach avec Get-Content

Comment utiliser la méthode PowerShell ForEach avec Get-Content

La méthode ForEach a été introduite dans PowerShell version 4. Cette méthode offre aux développeurs de scripts PowerShell un autre moyen d'itérer le contenu d'un fichier texte.

Dans cette section, vous apprendrez à utiliser la méthode ForEach avec Get-Content avec plusieurs exemples.

La section commence par la syntaxe de la méthode ForEach.

Syntaxe de la méthode PowerShell ForEach

La syntaxe de la méthode PowerShell ForEach est…

|__+_|

L'accès à la méthode ForEach d'un objet est similaire à l'accès à toute autre méthode PowerShell. La seule différence est que la méthode ForEach inclut un bloc {} dans le bloc ().

Comment combiner PowerShell Get-ChildItem, ForEach Method et Get-Content

Dans la section Déclaration ForEach de ce guide, j'ai partagé le script ci-dessous…

|__+_|

Le script utilisé Get-ChildItem pour renvoyer le chemin complet des fichiers texte de ce dossier…

Comment combiner PowerShell Get-ChildItem, ForEach Method et Get-Content

Voici le script équivalent de la méthode ForEach…

|__+_|

Comment créer des dossiers avec le contenu d'un fichier texte avec la méthode ForEach

Semblable à l'exemple de la dernière sous-section, j'ai utilisé le script ci-dessous dans la section Instruction ForEach de ce guide…

|__+_|

Le script a utilisé Get-Content et ForEach Statement pour créer des dossiers en utilisant le contenu du fichier texte dans la capture d'écran ci-dessous…

Contrairement à l'instruction ForEach qui utilise la commande…

|__+_|

La méthode PowerShell ForEach appelle la méthode ForEach dans le résultat de Get-Content comme ceci…

|__+_|

Ensuite, dans le bloc (), nous insérons le bloc {} et exécutons le Nouvel article commander. Cependant, au lieu d'utiliser le $nomfichier variable, cette fois, j'utilise la variable automatique $_

|__+_|

La version finale de la méthode ForEach du script ressemble à ceci…

|__+_|

Cette fois, je veux exécuter la commande dans PowerShell, au lieu de PowerShell ISE. Donc, j'aurai tout le script en une seule ligne…

|__+_|

Voici la commande dans PowerShell et les dossiers créés. J'ai également inclus la capture d'écran du fichier texte avec les noms de dossier…

comment regarder le football nfl sur kodi
Comment créer des dossiers avec le contenu d'un fichier texte avec la méthode ForEach

Comment diviser, puis joindre le contenu d'un fichier texte avec la méthode Get-Content et ForEach

Dans la section Instruction ForEach de ce guide, j'ai donné un exemple avec ceci stackoverflow.com question. La personne qui a posé la question souhaite modifier la chaîne suivante dans un fichier texte…

|__+_|

Pour ça…

|__+_|

Pour résoudre le problème, j'ai créé ce script qui utilise l'instruction Get-Content et PowerShell ForEach…

|__+_|

Dans cette section du guide, nous expliquons comment utiliser Obtenir du contenu et ForEach Method, voici le script équivalent avec ForEach Method…

|__+_|

La modification est la même sauf que, dans cette version modifiée, j'ai remplacé l'instruction ForEach par la méthode ForEach.

Comment utiliser l'applet de commande PowerShell ForEach-Object avec Get-Content

Comment utiliser l'applet de commande PowerShell ForEach-Object avec Get-Content

Dans cette dernière section, je vais répéter certains des exemples que j'ai déjà donnés dans les deux premières sections.

Cependant, dans cette section, je remplacerai l'instruction ForEach et/ou la méthode ForEach par l'applet de commande ForEach-Object.

La section commence par la syntaxe de l'applet de commande ForEach-Object

Syntaxe de l'applet de commande ForEach-Object

Il existe deux syntaxes de ForEach-Object. Voici leurs versions simplifiées :

|__+_| |__+_|

Les syntaxes de ForEach-Object peuvent paraître complexes. Cependant, il est très facile à utiliser. Pour ce guide, nous nous concentrerons sur InputObject paramètre.

C'est le paramètre qui alimente l'entrée dans ForEach-Object. De plus, InputObject peut également être envoyé via un pipeline…

|__+_|

Comment créer des dossiers avec le contenu d'un fichier texte avec l'applet de commande ForEach-Object

Dans les première et deuxième sections de ce guide, j'ai créé les scripts suivants.

|__+_| |__+_|

Le premier script utilise l'instruction Get-Content ForEach pour créer des dossiers en utilisant le contenu du fichier texte dans la capture d'écran ci-dessous…

De plus, le deuxième script utilise la méthode Get-Content ForEach pour effectuer la même tâche.

Si vous souhaitez utiliser l'applet de commande ForEach-Object au lieu de l'instruction ForEach ou de la méthode ForEach, le script sera modifié comme indiqué ci-dessous…

câble tv coaxial vers hdmi
|__+_|

Comment diviser, puis joindre le contenu d'un fichier texte avec l'applet de commande Get-Content et ForEach-Object

Dans les sections Instruction ForEach et Méthode ForEach, j'ai créé les scripts suivants pour résoudre ce problème. stackoverflow.com question.

|__+_| |__+_|

Voici la version de l'applet de commande ForEach-Object du même script :

|__+_|

Travailler avec PowerShell Get-Content et ForEach : dernières réflexions

Travailler avec PowerShell Get-Content et ForEach : dernières réflexions

Les sujets partagés dans ce guide peuvent prêter à confusion, notamment parce qu'il couvre 3 variantes de PowerShell ForEach. Pour faciliter la compréhension, voici un tableau récapitulant les concepts partagés dans cet article.

QuestionInstruction ForEachMéthode ForEachApplet de commande ForEach-Object
Accepte l'entrée de Get-Content
Comment accepte-t-il les entrées de Get-Content ?Pipeline |, ou dans le bloc de condition ForEach StatementMéthode PowerShell .()Pipeline | ou via le InputObject paramètre
Comment transforme-t-il l'entrée de Get-Content ?Crée une variable temporelle qui représente chaque objet de la collectionReprésente chaque objet de la collection avec la variable de pipeline automatique PowerShell, $_Représente chaque objet de la collection avec la variable de pipeline automatique PowerShell, $_
Exemple de scénario ?ForEach ($filename in Get-Content D:PS-Tutoriallist.txt) Out-Null
(Get-Content D:PS-Tutoriallist.txt).ForEach(
New-Item -Path D:PS-Tutorial -Name $_ -ItemType Directory
)
Get-Content D:PS-Tutoriallist.txt | Pour chaque objet
New-Item -Path D:PS-Tutorial -Name $_ -ItemType Directory

C'est tout - notre guide mis à jour sur l'utilisation de PowerShell Get-Content et ForEach ! J'espère que vous l'avez trouvé utile?

Si vous l'avez trouvé utile, merci de voter Oui à la question Was this post Helpful ci-dessous.

Alternativement, vous pouvez poser une question, laisser un commentaire ou fournir plus de commentaires avec le formulaire Laisser une réponse qui se trouve à la fin de cette page.

Enfin, pour plus de zones S techniques PowerShell, visitez notre page de guide pratique Windows PowerShell. Vous pouvez également trouver notre page Travail à domicile très utile.

Références et lectures complémentaires

  1. Pour chaque objet
  2. Obtenir du contenu
  3. about_Foreach