Set-Content
Écrit du nouveau contenu ou remplace le contenu existant dans un fichier.
Syntaxe
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Description
Set-Content
est une applet de commande de traitement de chaîne qui écrit du nouveau contenu ou remplace le contenu dans un fichier.
Set-Content
remplace le contenu existant et diffère de l’applet de commande Add-Content
qui ajoute du contenu à un fichier. Pour envoyer du contenu à Set-Content
vous pouvez utiliser le paramètre valeur valeur sur la ligne de commande ou envoyer du contenu via le pipeline.
Si vous devez créer des fichiers ou des répertoires pour les exemples suivants, consultez New-Item .
Exemples
Exemple 1 : Remplacer le contenu de plusieurs fichiers dans un répertoire
Cet exemple remplace le contenu de plusieurs fichiers dans le répertoire actif.
Get-ChildItem -Path .\Test*.txt
Test1.txt
Test2.txt
Test3.txt
Set-Content -Path .\Test*.txt -Value 'Hello, World'
Get-Content -Path .\Test*.txt
Hello, World
Hello, World
Hello, World
L’applet de commande Get-ChildItem
utilise le paramètre Path pour répertorier les fichiers .txt qui commencent par Test*
dans le répertoire actif. L’applet de commande Set-Content
utilise le paramètre Path pour spécifier les fichiers Test*.txt
. Le paramètre Valeur fournit la chaîne de texte Hello, World qui remplace le contenu existant dans chaque fichier. L’applet de commande
Exemple 2 : Créer un fichier et écrire du contenu
Cet exemple crée un fichier et écrit la date et l’heure actuelles dans le fichier.
Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08
Set-Content
utilise les paramètres Path et Value pour créer un fichier nommé DateTime.txt dans le répertoire actif. Le paramètre Valeur utilise Get-Date
pour obtenir la date et l’heure actuelles.
Set-Content
écrit l’objet DateTime dans le fichier sous forme de chaîne. L’applet de commande Get-Content
utilise le paramètre Path pour afficher le contenu de DateTime.txt dans la console PowerShell.
Exemple 3 : Remplacer du texte dans un fichier
Cette commande remplace toutes les instances de mot dans un fichier existant.
Get-Content -Path .\Notice.txt
Warning
Replace Warning with a new word.
The word Warning was replaced.
(Get-Content -Path .\Notice.txt) |
ForEach-Object {$_ -Replace 'Warning', 'Caution'} |
Set-Content -Path .\Notice.txt
Get-Content -Path .\Notice.txt
Caution
Replace Caution with a new word.
The word Caution was replaced.
L’applet de commande Get-Content
est encapsulée entre parenthèses afin que la commande se termine avant d’être envoyée dans le pipeline.
Le contenu du fichier Notice.txt est envoyé vers le bas du pipeline à l’applet de commande ForEach-Object
.
ForEach-Object
utilise le $_
de variable automatique et remplace chaque occurrence de Avertissement par Attention. Les objets sont envoyés au pipeline à l’applet de commande Set-Content
.
La dernière applet de commande Get-Content
affiche le contenu de fichier mis à jour dans la console PowerShell.
Exemple 4 : Utiliser des filtres avec Set-Content
Vous pouvez spécifier un filtre dans l’applet de commande Set-Content
. Lorsque vous utilisez des filtres pour qualifier le paramètre Path
La commande suivante définit le contenu de tous les fichiers *.txt
dans le répertoire C:\Temp
sur la valeur vide.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Credential
Note
Ce paramètre n’est pas pris en charge par les fournisseurs installés avec PowerShell. Pour emprunter l’identité d’un autre utilisateur ou élever vos informations d’identification lors de l’exécution de cette applet de commande, utilisez Invoke-Command.
Type: | PSCredential |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Encoding
Spécifie le type d’encodage du fichier cible. La valeur par défaut est par défaut .
L’encodage est un paramètre dynamique que le fournisseur FileSystem ajoute à Set-Content
. Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.
Les valeurs acceptables pour ce paramètre sont les suivantes :
- ASCII utilise un jeu de caractères ASCII (7 bits).
- BigEndianUnicode utilise UTF-16 avec l’ordre d’octet big-endian.
- BigEndianUTF32 utilise UTF-32 avec l’ordre d’octet big-endian.
- octets encode un jeu de caractères dans une séquence d’octets.
- par défaut utilise l’encodage qui correspond à la page de codes active du système (généralement ANSI).
- oem utilise l’encodage correspondant à la page de codes OEM actuelle du système.
- Chaîne Identique à Unicode .
- l' Unicode utilise UTF-16 avec l’ordre d’octet little-endian.
- inconnu identique à Unicode .
- UTF7 utilise UTF-7.
- UTF8 utilise UTF-8.
- UTF32 utilise UTF-32 avec l’ordre d’octet little-endian.
L’encodage est un paramètre dynamique que le fournisseur FileSystem ajoute à Set-Content
. Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.
Type: | FileSystemCmdletProviderEncoding |
Valeurs acceptées: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Valeur par défaut: | Default |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Exclude
Spécifie, en tant que tableau de chaînes, un élément ou des éléments que cette applet de commande exclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que *.txt
. Les caractères génériques sont autorisés. Le paramètre Exclure est efficace uniquement lorsque la commande inclut le contenu d’un élément, tel que C:\Windows\*
, où le caractère générique spécifie le contenu du répertoire C:\Windows
.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-Filter
Spécifie un filtre pour qualifier le paramètre Path. Le fournisseur FileSystem
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-Force
Force l’applet de commande à définir le contenu d’un fichier, même si le fichier est en lecture seule. L’implémentation varie du fournisseur au fournisseur. Pour plus d’informations, consultez about_Providers. Le paramètre Forcer ne remplace pas les restrictions de sécurité.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Include
Spécifie, sous la forme d’un tableau de chaînes, un élément ou des éléments inclus dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que "*.txt"
. Les caractères génériques sont autorisés. Le paramètre Include
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-LiteralPath
Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement comme elle est typée. Aucun caractère n’est interprété comme des caractères génériques. Si le chemin inclut des caractères d’échappement, placez-le entre guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.
Pour plus d’informations, consultez about_Quoting_Rules.
Type: | String[] |
Alias: | PSPath |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-NoNewline
Les représentations sous forme de chaîne des objets d’entrée sont concaténées pour former la sortie. Aucun espace ou nouvelle ligne n’est inséré entre les chaînes de sortie. Aucune nouvelle ligne n’est ajoutée après la dernière chaîne de sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-PassThru
Retourne un objet qui représente le contenu. Par défaut, cette applet de commande ne génère aucune sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Path
Spécifie le chemin d’accès de l’élément qui reçoit le contenu. Les caractères génériques sont autorisés.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-Stream
Spécifie un autre flux de données pour le contenu. Si le flux n’existe pas, cette applet de commande la crée. Les caractères génériques ne sont pas pris en charge.
Vous pouvez utiliser l’applet de commande Set-Content
pour modifier le contenu du flux de données de Zone.Identifier autre flux de données. Toutefois, nous vous déconseillons de procéder comme moyen d’éliminer les contrôles de sécurité qui bloquent les fichiers téléchargés à partir d’Internet. Si vous vérifiez qu’un fichier téléchargé est sécurisé, utilisez l’applet de commande Unblock-File
.
Ce paramètre a été introduit dans PowerShell 3.0.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-UseTransaction
Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu’une transaction est en cours. Pour plus d’informations, consultez about_Transactions.
Type: | SwitchParameter |
Alias: | usetx |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Value
Spécifie le nouveau contenu de l’élément.
Type: | Object[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger un objet qui contient la nouvelle valeur de l’élément à Set-Content
.
Sorties
None or System.String
Lorsque vous utilisez le paramètre PassThru
Notes
- Vous pouvez également faire référence à
Set-Content
par son alias intégré,sc
. Pour plus d’informations, consultez about_Aliases. -
Set-Content
est conçu pour le traitement de chaînes. Si vous dirigez des objets autres que des chaînes versSet-Content
, il convertit l’objet en chaîne avant de l’écrire. Pour écrire des objets dans des fichiers, utilisezOut-File
. - L’applet de commande
Set-Content
est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, tapezGet-PsProvider
. Pour plus d’informations, consultez about_Providers.