Condividi tramite


Set-Content

Scrive nuovo contenuto o sostituisce il contenuto esistente in un file.

Sintassi

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

Descrizione

Set-Content è un cmdlet di elaborazione di stringhe che scrive nuovo contenuto o sostituisce il contenuto in un file. Set-Content sostituisce il contenuto esistente e differisce dal cmdlet Add-Content che aggiunge contenuto a un file. Per inviare contenuto a Set-Content è possibile usare il parametro valore nella riga di comando o inviare contenuto tramite la pipeline.

Se è necessario creare file o directory per gli esempi seguenti, vedere new-item.

Esempio

Esempio 1: Sostituire il contenuto di più file in una directory

In questo esempio viene sostituito il contenuto di più file nella directory corrente.

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

Il cmdlet Get-ChildItem usa il parametro Path per elencare .txt file che iniziano con Test* nella directory corrente. Il cmdlet Set-Content usa il parametro Path per specificare i file di Test*.txt. Il parametro Value fornisce la stringa di testo Hello, World che sostituisce il contenuto esistente in ogni file. Il cmdlet Get-Content usa il parametro Path per specificare i file di Test*.txt e visualizzare il contenuto di ogni file nella console di PowerShell.

Esempio 2: Creare un nuovo file e scrivere contenuto

Questo esempio crea un nuovo file e scrive la data e l'ora correnti nel file.

Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08

Set-Content usa i parametri Path e Value per creare un nuovo file denominato DateTime.txt nella directory corrente. Il parametro Value usa Get-Date per ottenere la data e l'ora correnti. Set-Content scrive l'oggetto DateTime nel file come stringa. Il cmdlet Get-Content usa il parametro Path per visualizzare il contenuto di DateTime.txt nella console di PowerShell.

Esempio 3: Sostituire il testo in un file

Questo comando sostituisce tutte le istanze di word all'interno di un file esistente.

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.

Il cmdlet Get-Content usa il parametro Path per specificare il file Notice.txt nella directory corrente. Il comando Get-Content viene eseguito il wrapping tra parentesi in modo che il comando finisca prima di essere inviato alla pipeline.

Il contenuto del file di Notice.txt viene inviato alla pipeline al cmdlet ForEach-Object. ForEach-Object usa la variabile automatica $_ e sostituisce ogni occorrenza di Avviso con attenzione. Gli oggetti vengono inviati alla pipeline al cmdlet Set-Content. Set-Content usa il parametro Path per specificare il file di Notice.txt e scrive il contenuto aggiornato nel file.

L'ultimo cmdlet Get-Content visualizza il contenuto del file aggiornato nella console di PowerShell.

Esempio 4: Usare filtri con Set-Content

È possibile specificare un filtro per il cmdlet Set-Content. Quando si usano filtri per qualificare il parametro Path, è necessario includere un asterisco finale (*) per indicare il contenuto del percorso.

Il comando seguente imposta il contenuto di tutti i file di *.txt nella directory C:\Temp sul valore vuoto.

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

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:cfr

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Credential

Annotazioni

Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali quando si esegue questo cmdlet, usare Invoke-Command.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Encoding

Si tratta di un parametro dinamico reso disponibile dal provider FileSystem. Per altre informazioni, vedere about_FileSystem_Provider.

Specifica il tipo di codifica per il file di destinazione. Il valore predefinito è Default.

La codifica è un parametro dinamico aggiunto dal provider FileSystem a Set-Content. Questo parametro funziona solo nelle unità del sistema di file.

I valori accettabili per questo parametro sono i seguenti:

  • Ascii usa il set di caratteri ASCII (a 7 bit).
  • BigEndianUnicode usa UTF-16 con l'ordine dei byte "big-endian".
  • BigEndianUTF32 usa UTF-32 con l'ordine dei byte big-endian.
  • Byte Codifica un set di caratteri in una sequenza di byte.
  • Default Usa la codifica corrispondente alla tabella codici attiva del sistema (in genere ANSI).
  • Oem Usa la codifica corrispondente alla tabella codici OEM corrente del sistema.
  • String Uguale a Unicode.
  • Unicode usa UTF-16 con l'ordine dei byte little-endian.
  • Unknown Uguale a Unicode.
  • UTF7 usa UTF-7.
  • UTF8 usa UTF-8.
  • UTF32 utilizza UTF-32 con l'ordine dei byte in formato little-endian.

La codifica è un parametro dinamico aggiunto dal provider FileSystem a Set-Content. Questo parametro funziona solo nelle unità del sistema di file.

Proprietà dei parametri

Tipo:FileSystemCmdletProviderEncoding
Valore predefinito:Default
Valori accettati:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Exclude

Specifica, come array di stringhe, uno o più elementi che questo cmdlet esclude durante l'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio *.txt. Sono consentiti caratteri jolly. Il parametro Exclude è valido solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, nel quale il carattere jolly specifica il contenuto della directory C:\Windows.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Filter

Specifica un filtro per qualificare il parametro Path. Il provider di FileSystem è l'unico provider di PowerShell installato che supporta l'utilizzo dei filtri. È possibile trovare la sintassi del linguaggio di filtro FileSystem in about_Wildcards. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica quando il cmdlet ottiene gli oggetti anziché filtrare gli oggetti dopo il recupero.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Force

Forza il cmdlet a impostare il contenuto di un file, anche se il file è di sola lettura. L'implementazione varia da provider a provider. Per altre informazioni, consultare about_Providers. Il parametro Force non sostituisce le restrizioni di sicurezza.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Include

Specifica, sotto forma di matrice di stringhe, un elemento o elementi che questo cmdlet include nell'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio "*.txt". Sono consentiti caratteri jolly. Il parametro Include è efficace solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della directory C:\Windows.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-LiteralPath

Specifica un percorso per una o più posizioni. Il valore di LiteralPath viene utilizzato esattamente come viene digitato. Nessun carattere viene interpretato come metacaratteri. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

Per altre informazioni, vedere about_Quoting_Rules.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PSPath

Set di parametri

LiteralPath
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-NoNewline

Si tratta di un parametro dinamico reso disponibile dal provider FileSystem. Per altre informazioni, vedere about_FileSystem_Provider.

Le rappresentazioni di stringa degli oggetti di input vengono concatenate per formare l'output. Non vengono inseriti spazi o nuove righe tra le stringhe di output. Nessuna nuova riga viene aggiunta dopo l'ultima stringa di output.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-PassThru

Restituisce un oggetto che rappresenta il contenuto. Per impostazione predefinita, questo cmdlet non genera alcun output.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Path

Specifica il percorso dell'elemento che riceve il contenuto. Sono consentiti caratteri jolly.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

Path
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Stream

Si tratta di un parametro dinamico reso disponibile dal provider FileSystem. Questo parametro è disponibile solo in Windows. Per altre informazioni, vedere about_FileSystem_Provider.

Specifica un flusso di dati alternativo per il contenuto. Se il flusso non esiste, questo cmdlet lo crea. I caratteri jolly non sono supportati.

Stream è un parametro dinamico aggiunto dal provider FileSystem a Set-Content. Questo parametro funziona solo nelle unità del sistema di file.

È possibile usare il cmdlet Set-Content per creare o aggiornare il contenuto di qualsiasi flusso di dati alternativo, ad esempio Zone.Identifier. Tuttavia, non è consigliabile farlo come modo per eliminare i controlli di sicurezza che bloccano i file scaricati da Internet. Se si verifica che un file scaricato sia sicuro, usare il cmdlet Unblock-File.

Questo parametro è stato introdotto in PowerShell 3.0.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:usetx

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Value

Specifica il nuovo contenuto per l'elemento.

Proprietà dei parametri

Tipo:

Object[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:Wi

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

Object

È possibile inviare tramite pipe un oggetto contenente il nuovo valore per l'elemento a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

String

Quando si usa il parametro PassThru, questo cmdlet restituisce una stringa che rappresenta il contenuto.

Note

Windows PowerShell include gli alias seguenti per Set-Content:

  • sc

  • Set-Content è progettato per l'elaborazione di stringhe. Se si invia tramite pipe oggetti non stringa a Set-Content, l'oggetto viene convertito in una stringa prima di scriverlo. Per scrivere oggetti in file, usare Out-File.

  • Il cmdlet Set-Content è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PSProvider. Per altre informazioni, consultare about_Providers.