Scrive o sostituisce il contenuto di un elemento con nuovo contenuto.

Sintassi

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

Descrizione

Il cmdlet Set-Content è un cmdlet di elaborazione stringhe che scrive o sostituisce il contenuto dell'elemento specificato, ad esempio un file. Mentre il cmdlet Add-Content aggiunge contenuto a un file, Set-Content sostituisce il contenuto esistente. È possibile digitare il contenuto nel comando oppure inviarlo attraverso la pipeline a Set-Content.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Exclude <string[]>

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Filter <string>

Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Force

Consente al cmdlet di impostare il contenuto di un file anche se il file è di sola lettura. L'implementazione varia a seconda del provider. Per ulteriori informazioni, vedere about_Providers. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Include <string[]>

Modifica unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-LiteralPath <string[]>

Specifica il percorso dell'elemento che riceverà il contenuto. A differenza di Path, il valore di LiteralPath viene utilizzato così come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, è necessario racchiuderli tra virgolette singole tramite le quali si comunica a Windows PowerShell di non interpretare alcun carattere come sequenza di escape.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-PassThru

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

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Path <string[]>

Specifica il percorso dell'elemento che riceverà il contenuto. È consentito l'utilizzo di caratteri jolly.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Value <Object[]>

Specifica il nuovo contenuto dell'elemento.

Obbligatorio?

true

Posizione?

2

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-UseTransaction

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

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.Object

È possibile reindirizzare un oggetto che contiene il nuovo valore per l'elemento a Set-Content.

Output

Nessuno o System.String

Quando si utilizza il parametro Passthru, con Set-Content viene generato un oggetto System.String che rappresenta il contenuto. Negli altri casi, il cmdlet non genera alcun output.

Note

È inoltre possibile fare riferimento a Set-Content tramite il relativo alias predefinito "sc". Per ulteriori informazioni, vedere about_Aliases.

Set-Content è progettato per l'elaborazione di stringhe. Se si reindirizzano a Set-Content oggetti non corrispondenti a stringhe, tali oggetti vengono convertiti in stringhe prima di essere scritti. Per scrivere oggetti su file, utilizzare Out-File.

Il cmdlet Set-Content è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PsProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

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

Descrizione
-----------
Tramite questo comando viene sostituito il contenuto di tutti i file nella directory Test1 i cui nomi iniziano con "test" con "Hello, World". In questo esempio viene illustrato come specificare il contenuto digitandolo nel comando.






Esempio 2

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

Descrizione
-----------
Tramite questo comando viene creato un file di lunghezza variabile con valori delimitati da virgole (csv) che contiene solo la data e l'ora correnti. Viene utilizzato il cmdlet Get-Date per ottenere la data e l'ora di sistema correnti. Il risultato viene passato dall'operatore pipeline a Set-Content, il quale crea il file e scrive il contenuto.

Se la directory Test1 non esiste, il comando ha esito negativo, ma se il file non esiste, verrà creato dal comando.






Esempio 3

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

Descrizione
-----------
Tramite questo comando vengono sostituite tutte le istanze di "Warning" con "Caution" nel file Notice.txt. 

Viene utilizzato il cmdlet Get-Content per ottenere il contenuto di Notice.txt. I risultati vengono inviati dall'operatore pipeline al cmdlet ForEach-Object, il quale applica l'espressione a ogni riga di contenuto in Get-Content. Nell'espressione vengono utilizzati il simbolo "$_" per fare riferimento all'elemento corrente e il parametro Replace per specificare il testo da sostituire. 

Il contenuto modificato viene inviato da un altro operatore pipeline a Set-Content, il quale sostituisce il testo di Notice.txt con nuovo contenuto.

Le parentesi tra cui è racchiuso il comando Get-Content assicurano che l'operazione Get venga completata prima dell'inizio dell'operazione Set. Senza tali parentesi, il comando avrà esito negativo perché le due funzioni tenteranno di accedere allo stesso file.






Vedere anche




Argomenti della Guida