Partager via


Set-Content

Écrit du nouveau contenu ou remplace le contenu existant dans un fichier.

Syntax

Set-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-NoNewline]
   [-Encoding <Encoding>]
   [-AsByteStream]
   [-Stream <string>]
   [<CommonParameters>]
Set-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-NoNewline]
   [-Encoding <Encoding>]
   [-AsByteStream]
   [-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 Add-Content de commande qui ajoute du contenu à un fichier. Pour envoyer du contenu à Set-Content , vous pouvez utiliser le paramètre Value 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 Get-ChildItem de commande utilise le paramètre Path pour répertorier .txt fichiers qui commencent par Test* dans le répertoire actif. L’applet Set-Content de commande utilise le paramètre Path pour spécifier les Test*.txt fichiers. Le paramètre Value fournit la chaîne de texte Hello World qui remplace le contenu existant dans chaque fichier. L’applet Get-Content de commande utilise le paramètre Path pour spécifier les Test*.txt fichiers et affiche le contenu de chaque fichier dans la console PowerShell.

Exemple 2 : Create un nouveau 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 Value 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 Get-Content de commande 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 Get-Content de commande utilise le paramètre Path pour spécifier le fichier Notice.txt dans le répertoire actif. La Get-Content commande est encapsulée de 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 ForEach-Object commande. ForEach-Object utilise la variable $_ automatique et remplace chaque occurrence d’Avertissement par Attention. Les objets sont envoyés vers le bas du pipeline à l’applet de Set-Content commande . Set-Content utilise le paramètre Path pour spécifier le fichier Notice.txt et écrit le contenu mis à jour dans le fichier.

La dernière Get-Content applet de commande affiche le contenu du fichier mis à jour dans la console PowerShell.

Exemple 4 : Utiliser des filtres avec Set-Content

Vous pouvez spécifier un filtre pour l’applet de Set-Content commande. Lorsque vous utilisez des filtres pour qualifier le paramètre Path , vous devez inclure un astérisque de fin (*) pour indiquer le contenu du chemin.

La commande suivante définit le contenu de tous les *.txt fichiers du C:\Temp répertoire sur la valeur vide.

Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"

Paramètres

-AsByteStream

Spécifie que le contenu doit être écrit sous la forme d’un flux d’octets. Ce paramètre a été introduit dans PowerShell 6.0.

Un avertissement se produit lorsque vous utilisez le paramètre AsByteStream avec le paramètre Encoding . Le paramètre AsByteStream ignore tout encodage et la sortie est écrite sous la forme d’un flux d’octets.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Notes

Ce paramètre n’est pris en charge par aucun fournisseur installé 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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

Spécifie le type de codage du fichier cible. La valeur par défaut est utf8NoBOM.

L’encodage est un paramètre dynamique que le fournisseur FileSystem ajoute à Set-Content. Ce paramètre fonctionne uniquement dans les lecteurs du système de fichiers.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • ascii: utilise l’encodage pour le jeu de caractères ASCII (7 bits).
  • bigendianunicode: encode au format UTF-16 à l’aide de l’ordre d’octets big-endian.
  • bigendianutf32: encode au format UTF-32 à l’aide de l’ordre d’octets big-endian.
  • oem: utilise l’encodage par défaut pour les programmes MS-DOS et console.
  • unicode: encode au format UTF-16 à l’aide de l’ordre d’octet little-endian.
  • utf7: encode au format UTF-7.
  • utf8: encode au format UTF-8.
  • utf8BOM: encode au format UTF-8 avec une marque d’ordre d’octet (BOM)
  • utf8NoBOM: encode au format UTF-8 sans marque d’ordre d’octet (BOM)
  • utf32: encode au format UTF-32.

À compter de PowerShell 6.2, le paramètre Encoding autorise également les ID numériques des pages de codes inscrites (comme -Encoding 1251) ou les noms de chaîne de pages de codes inscrites (comme -Encoding "windows-1251"). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.

Notes

Il n’est plus recommandé d’utiliser UTF-7*. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7 pour le paramètre Encoding .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Spécifie, en tant que tableau de chaînes, un ou plusieurs é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 Exclude est effectif 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 C:\Windows répertoire.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Spécifie un filtre pour qualifier le paramètre Path . Le fournisseur FileSystem est le seul fournisseur PowerShell installé qui prend en charge l’utilisation de filtres. Vous trouverez la syntaxe du langage de filtre FileSystem dans about_Wildcards. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lorsque l’applet de commande obtient les objets au lieu de laisser PowerShell filtrer les objets après leur récupération.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 est différente d'un fournisseur à l'autre. Pour plus d'informations, consultez about_Providers. Le paramètre Force ne remplace pas les restrictions de sécurité.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Spécifie, en tant que tableau de chaînes, un ou plusieurs éléments que cette applet de commande inclut 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 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 C:\Windows répertoire.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement telle qu’elle est tapée. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme des séquences d’échappement.

Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Retourne un objet qui représente le contenu. Par défaut, cette applet de commande ne génère aucun résultat.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Stream

Notes

Ce paramètre est disponible uniquement sur Windows.

Spécifie un autre flux de données pour le contenu. Si le flux n’existe pas, cette applet de commande le crée. Les caractères génériques ne sont pas pris en charge.

Stream est un paramètre dynamique que le fournisseur FileSystem ajoute à Set-Content. Ce paramètre fonctionne uniquement dans les lecteurs du système de fichiers.

Vous pouvez utiliser l’applet de Set-Content commande pour créer ou mettre à jour le contenu d’un autre flux de données, tel que Zone.Identifier. Toutefois, nous vous déconseillons 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 Unblock-File commande.

Ce paramètre a été introduit dans PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

Spécifie le nouveau contenu pour l'élément.

Type:Object[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

Object

Vous pouvez diriger un objet qui contient la nouvelle valeur de l’élément vers Set-Content.

Sorties

None or System.String

Lorsque vous utilisez le paramètre PassThru , Set-Content génère un objet System.String qui représente le contenu. Sinon, cette applet de commande ne génère aucune sortie.

Notes

  • Vous pouvez également faire référence à par Set-Content son alias intégré, sc. Pour plus d’informations, consultez about_Aliases.
  • Set-Content est conçu pour le traitement des chaînes. Si vous dirigez des objets autres que des chaînes vers Set-Content, il convertit l’objet en chaîne avant de l’écrire. Pour écrire des objets dans des fichiers, utilisez Out-File.
  • L’applet Set-Content de commande 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, tapez Get-PsProvider. Pour plus d'informations, consultez about_Providers.