Cmdlet Set-Content de PowerShell

  1. la cmdlet Set-Content dans PowerShell
  2. Utiliser la cmdlet Set-Content pour écrire du contenu texte dans un fichier unique
  3. Utiliser la cmdlet Set-Content pour remplacer le contenu texte dans plusieurs fichiers
  4. Utiliser Set-Content pour passer le contenu texte via un PIPE
Cmdlet Set-Content de PowerShell

Parfois, nous pouvons avoir besoin d’écrire le même contenu texte dans plusieurs fichiers texte. PowerShell fournit une cmdlet utile pour écrire du contenu texte via la ligne de commande.

Dans cet article, nous nous concentrerons sur la cmdlet Set-Content.

la cmdlet Set-Content dans PowerShell

La cmdlet Set-Content écrit un nouveau contenu texte ou remplace le texte existant dans un fichier. Cela ressemble davantage à l’opérateur > dans Linux.

La cmdlet Set-Content diffère de la cmdlet de traitement de chaîne Add-Content, qui ajoute du texte à un fichier spécifié. La cmdlet sc peut être utilisée comme alias de la commande Set-Content.

Syntaxe :

Set-Content
[-Path_to_file] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]

La commande prend un nombre assez important d’arguments, et l’objectif de quelques-uns a été décrit dans la section suivante.

Paramètre Description
-Path_to_file Vous pouvez spécifier un chemin de fichier texte existant ou en créer un nouveau dans le chemin donné.
-Value Ce paramètre est utilisé pour passer le contenu texte que vous allez écrire.
-Force L’argument -Force remplace le contenu dans le fichier en lecture seule.
-Encoding L’encodage texte du fichier cible est réglé par défaut sur utf8NoBOM.
-Exclude Les éléments qui doivent être exclus dans cette opération sont spécifiés sous forme de tableau de chaînes.
-Include C’est l’opposé de l’argument -Exclude. Cet argument spécifie un tableau d’éléments qui doivent être inclus dans l’opération Set-Content.
-PassThru Lorsque l’argument PassThru est spécifié, la commande affiche le contenu texte qui a été ajouté au fichier texte.

Généralement, le paramètre -Value est utilisé pour spécifier le contenu texte écrit dans le fichier. De plus, vous pouvez également transmettre le contenu texte d’un autre objet.

Si vous passez un objet non-chaîne à la commande Set-Content, il sera d’abord converti en chaîne et écrit dans le fichier.

Utiliser la cmdlet Set-Content pour écrire du contenu texte dans un fichier unique

Écrivons du contenu texte dans un fichier appelé sometext.txt qui n’existe actuellement pas. Ainsi, la commande Set-Content créerait d’abord ce fichier et écrirait le contenu passé avec l’argument -Value.

Commande :

Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."

créer un fichier texte et écrire la commande de contenu

Sortie :

créer un fichier texte et écrire le contenu de la sortie

Utiliser la cmdlet Set-Content pour remplacer le contenu texte dans plusieurs fichiers

Supposons que nous ayons trois fichiers file1.txt, file2.txt, et file3.txt. Nous allons remplacer le contenu de ces trois fichiers par le texte suivant.

Hello, i would be appeared in all the three files!

Dans ce cas, la commande Set-Content utilise les caractères génériques pour correspondre aux trois fichiers donnés.

Commande :

Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"

Utilisez le Cmdlet Set-Content pour remplacer le contenu textuel dans plusieurs fichiers. {CODE_BLOCK_8}

Les trois fichiers correspondent au modèle spécifié par file* txt, ce qui force la commande à correspondre à tous les fichiers commençant par la phrase file.

Sortie :

Utilisez la cmdlet Set-Content pour remplacer le contenu textuel dans plusieurs fichiers de sortie.

Utiliser Set-Content pour passer le contenu texte via un PIPE

Il n’est pas nécessaire de spécifier l’argument -Value à chaque fois. Au lieu de cela, nous pouvons PIPE un objet texte à la cmdlet Set-Content comme suit.

Commande :

(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt

La cmdlet Get-Content lit le contenu texte du fichier file1.txt. Ensuite, elle utilise la commande replace pour remplacer le texte tous les trois fichiers ! par le fichier file4.txt.

Enfin, le texte construit serait écrit dans le fichier file4.txt.

Sortie :

Utilisez Set-Content pour passer le contenu texte à travers une sortie PIPE.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.