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

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..."
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!"
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 :
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 :
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.