Partager via


Set-Content

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

Syntaxe

Path (Default) - FileSystem provider

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>]

LiteralPath - FileSystem provider

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>]

Path (Default) - All providers

Set-Content
    [-Path] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

LiteralPath - All providers

Set-Content
    [-Value] <Object[]>
    -LiteralPath <string[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<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 utilise le paramètre Path pour spécifier les fichiers et afficher le contenu de chaque fichier dans la console PowerShell.

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 utilise le paramètre path pour spécifier le fichier Notice.txt dans le répertoire actif. La 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. utilise le paramètre path pour spécifier le fichier Notice.txt et écrire le contenu mis à jour dans le fichier.

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, vous devez inclure un astérisque de fin (*) pour indiquer le contenu du chemin.

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.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:cf

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Credential

Remarque

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.

Propriétés du paramètre

Type:PSCredential
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Encoding

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur FileSystem. Pour plus d’informations, consultez about_FileSystem_Provider.

Spécifie le type d’encodage du fichier cible. La valeur par défaut est Default.

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 le 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.
  • Byte encode un jeu de caractères en une séquence d’octets.
  • Default Utilise l’encodage qui correspond à la page de codes active du système (généralement ANSI).
  • Oem Utilise l’encodage qui correspond à la page de codes OEM actuelle du système.
  • String Identique à Unicode.
  • Unicode utilise UTF-16 avec l’ordre d’octet little-endian.
  • Unknown 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.

Propriétés du paramètre

Type:FileSystemCmdletProviderEncoding
Valeur par défaut:Default
Valeurs acceptées:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 de chemin ou un modèle, 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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-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 pouvez trouver 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 plutôt que de filtrer les objets après leur récupération.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-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, voir about_Providers. Le paramètre Forcer ne remplace pas les restrictions de sécurité.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 de chemin ou un modèle, tel que "*.txt". Les caractères génériques sont autorisés. Le paramètre Include n’est effectif que 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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-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é 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 séquences d’échappement.

Pour plus d'informations, consultez la section sur les règles de citation.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PSPath

Jeux de paramètres

LiteralPath
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-NoNewline

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur FileSystem. Pour plus d’informations, consultez about_FileSystem_Provider.

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 caractères de sortie.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-PassThru

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

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

Path
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Stream

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur FileSystem. Ce paramètre est disponible uniquement sur Windows. Pour plus d’informations, consultez about_FileSystem_Provider.

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.

Stream est un paramètre dynamique que le fournisseur fileSystem ajoute à . Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.

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

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:usetx

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Value

Spécifie le nouveau contenu de l’élément.

Propriétés du paramètre

Type:

Object[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:1
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande ne s’exécute pas.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:Wi

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

Object

Vous pouvez diriger un objet qui contient la nouvelle valeur de l’élément vers cette applet de commande.

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

String

Lorsque vous utilisez le paramètre PassThru, cette applet de commande retourne une chaîne représentant le contenu.

Notes

Windows PowerShell inclut les alias suivants pour Set-Content:

  • sc

  • Set-Content est conçu pour le traitement de 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 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, tapez Get-PSProvider. Pour plus d’informations, voir about_Providers.