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