Écrit ou remplace le contenu d'un élément par un nouveau contenu.

Syntaxe

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

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

Description

L'applet de commande Set-Content est une applet de commande de traitement de chaîne qui écrit ou remplace le contenu d'un élément spécifié, tel qu'un fichier. Alors que l'applet de commande Add-Content ajoute du contenu à un fichier, Set-Content remplace le contenu existant. Vous pouvez taper le contenu dans la commande ou envoyer le contenu à Set-Content à travers le pipeline.

Paramètres

-Credential <PSCredential>

Spécifie un compte d'utilisateur qui a l'autorisation d'exécuter cette action. La valeur par défaut est l'utilisateur actuel.

Tapez un nom d'utilisateur, tel que « User01 » ou « Domain01\User01 », ou entrez un objet PSCredential, tel que celui généré par l'applet de commande Get-Credential. Si vous tapez un nom d'utilisateur, vous êtes invité à entrer un mot de passe.

Ce paramètre n'est pas pris en charge par les fournisseurs installés avec Windows PowerShell.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Exclude <string[]>

Omet les éléments spécifiés. 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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Filter <string>

Spécifie un filtre dans le format ou le langage du fournisseur. La valeur de ce paramètre qualifie le paramètre Path. La syntaxe du filtre, notamment l'utilisation de caractères génériques, dépend du fournisseur. Les filtres sont plus efficaces que les autres paramètres, car le fournisseur les applique lors de la récupération des objets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupérés.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Force

Permet à l'applet de commande de définir le contenu d'un fichier même s'il est en lecture seule. L'implémentation est différente d'un fournisseur à l'autre. Pour plus d'informations, consultez about_Providers. Même en utilisant le paramètre Force, l'applet de commande ne peut pas remplacer les restrictions de sécurité.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Include <string[]>

Modifie uniquement les éléments spécifiés. 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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-LiteralPath <string[]>

Spécifie le chemin d'accès à l'élément qui recevra le contenu. Contrairement à Path, la valeur de LiteralPath est utilisée exactement telle que vous la tapez. 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 à Windows PowerShell qu'aucun caractère ne doit être interprété en tant que séquence d'échappement.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-PassThru

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

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Path <string[]>

Spécifie le chemin d'accès à l'élément qui recevra le contenu. Les caractères génériques sont autorisés.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Value <Object[]>

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

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue, ByPropertyName)

Accepter les caractères génériques ?

false

-Confirm

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Object

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

Sorties

Aucun ou 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.

Remarques

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 des chaînes. Si vous dirigez un objet autre qu'une chaîne vers Set-Content, elle convertit l'objet en chaîne avant de l'écrire. Pour écrire des objets en fichiers, utilisez Out-File.

L'applet de commande Set-Content est conçue pour utiliser 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.

Exemple 1

C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World"

Description
-----------
Cette commande remplace le contenu de tous les fichiers du répertoire Test1 dont le nom commence par « test » avec « Hello, World ». Cet exemple montre comment spécifier le contenu en le tapant dans la commande.






Exemple 2

C:\PS>get-date | set-content C:\Test1\date.csv

Description
-----------
Cette commande crée un fichier de valeurs séparées par des virgules (csv) contenant uniquement la date et l'heure actuelles. Elle utilise l'applet de commande Get-Date pour obtenir la date et l'heure système actuelles. L'opérateur de pipeline passe le résultat à Set-Content qui crée le fichier et écrit le contenu.

Si le répertoire Test1 n'existe pas, la commande échoue. En revanche, si le fichier n'existe pas, la commande le crée.






Exemple 3

C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt

Description
-----------
Cette commande remplace toutes les instances de « Warning » par « Caution » dans le fichier Notice.txt. 

Elle utilise l'applet de commande Get-Content pour obtenir le contenu de Notice.txt. L'opérateur de pipeline envoie les résultats à l'applet de commande ForEach-Object, laquelle applique l'expression à chaque ligne de contenu dans Get-Content. L'expression utilise le symbole « $ _ » pour faire référence à l'élément actuel et le paramètre Replace pour spécifier le texte à remplacer. 

Un autre opérateur de pipeline envoie le contenu modifié à Set-Content qui remplace le texte de Notice.txt par le nouveau contenu.

L'inclusion de la commande Get-Content entre des parenthèses garantit l'achèvement de la commande Get avant le début de l'opération Set. Sans elles, la commande échouera car les deux fonctions tenteront d'accéder au même fichier.






Voir aussi




Table des matières