Cmdlet Set-Content di PowerShell
-
il cmdlet
Set-Content
in PowerShell -
Usa il cmdlet
Set-Content
per Scrivere Contenuti Testuali in un Singolo File -
Usa il cmdlet
Set-Content
per Sostituire il Contenuto Testuale in Più File -
Usa
Set-Content
per Passare il Contenuto Testuale Tramite un PIPE

A volte, potremmo aver bisogno di scrivere lo stesso contenuto testuale in più file di testo. PowerShell fornisce un cmdlet utile per scrivere contenuti testuali tramite la riga di comando.
In questo articolo, ci concentreremo sul cmdlet Set-Content
.
il cmdlet Set-Content
in PowerShell
Il cmdlet Set-Content
scrive nuovi contenuti testuali o sostituisce il testo esistente in un file. Questo è più simile all’operatore >
in Linux.
Il cmdlet Set-Content
differisce dal cmdlet di elaborazione delle stringhe Add-Content
, che aggiunge testo a un file specificato. L’alias sc
può essere utilizzato come alias per il comando Set-Content
.
Sintassi:
Set-Content
[-Path_to_file] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Il comando richiede un numero piuttosto elevato di argomenti, e lo scopo di alcuni è stato descritto nella sezione seguente.
Parametro | Descrizione |
---|---|
-Path_to_file |
Puoi specificare un percorso di file di testo esistente o crearne uno nuovo nel percorso dato. |
-Value |
Questo parametro è utilizzato per passare il contenuto testuale che scriverai. |
-Force |
L’argomento -Force sostituisce il contenuto nel file di sola lettura. |
-Encoding |
La codifica del file di destinazione è impostata su utf8NoBOM per impostazione predefinita. |
-Exclude |
Gli elementi che devono essere esclusi in questa operazione sono specificati come un array di stringhe. |
-Include |
Questo è l’opposto dell’argomento -Exclude . Questo argomento specifica un array di elementi che devono essere inclusi nell’operazione Set-Content . |
-PassThru |
Quando l’argomento PassThru è specificato, il comando restituisce il contenuto testuale che è stato aggiunto al file di testo. |
Di solito, il parametro -Value
è utilizzato per specificare il contenuto testuale scritto nel file. Inoltre, puoi anche passare il contenuto testuale da un altro oggetto.
Se passi un oggetto non stringa al comando Set-Content
, prima lo convertirà in una stringa e lo scriverà nel file.
Usa il cmdlet Set-Content
per Scrivere Contenuti Testuali in un Singolo File
Scriviamo contenuti testuali in un file chiamato sometext.txt
che attualmente non esiste. Quindi, il comando Set-Content creerà questo file per primo e scriverà il contenuto passato con l’argomento -Value
.
Comando:
Set-Content -Path D:\codes\sometext.txt -Value "This should create a new file called sometext.txt and write this text to it..."
Output:
Usa il cmdlet Set-Content
per Sostituire il Contenuto Testuale in Più File
Supponiamo di avere tre file file1.txt, file2.txt, e file3.txt
. Sostituiremo il contenuto in questi tre file con il seguente testo.
Hello, i would be appeared in all the three files!
In questo caso, il comando Set-Content
utilizza caratteri jolly per abbinare i tre file dati.
Comando:
Set-Content -Path D:\codes\file*.txt -Value "Hello, i would be appeared in all the three files!"
I tre file corrispondono al modello specificato da file* txt
, il che costringe il comando a corrispondere a tutti i file che iniziano con la frase file
.
Output:
Usa Set-Content
per Passare il Contenuto Testuale Tramite un PIPE
Non è necessario specificare sempre l’argomento -Value
. Invece, possiamo PIPE un oggetto testuale al Set-Content
come segue.
Comando:
(Get-Content D:\codes\file1.txt).replace('all the three files!', 'file4.txt') | Set-Content D:\codes\file4.txt
Il cmdlet Get-Content
legge il contenuto testuale dal file file1.txt
. Poi, utilizza il comando replace
per sostituire il testo tutti e tre i file!
con il file4.txt
.
Infine, il testo costruito verrà scritto nel file file4.txt
.
Output:
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.