É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