Add-Content
Aggiunge contenuto agli elementi specificati, ad esempio aggiungendo parole a un file.
Sintassi
Add-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Add-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Descrizione
Il Add-Content
cmdlet aggiunge contenuto a un elemento o a un file specificato. Il contenuto può essere passato dalla pipeline o specificato usando il parametro Value .
Se è necessario creare file o directory per gli esempi seguenti, vedere New-Item.
Esempio
Esempio 1: Aggiungere una stringa a tutti i file di testo con un'eccezione
Questo esempio aggiunge un valore ai file di testo nella directory corrente, ma esclude i file in base al nome del file.
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
Il parametro Path specifica tutti i .txt
file nella directory corrente, ma il parametro Exclude ignora i nomi di file che corrispondono al modello specificato. Il parametro Value specifica la stringa di testo scritta nei file.
Usare Get-Content per visualizzare il contenuto di questi file.
Esempio 2: Aggiungere una data alla fine dei file specificati
Questo esempio aggiunge la data ai file nella directory corrente e visualizza la data nella console di PowerShell.
Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log
Tuesday, May 14, 2019 8:24:27 AM
Tuesday, May 14, 2019 8:24:27 AM
5/14/2019 8:24:27 AM
Il Add-Content
cmdlet crea due nuovi file nella directory corrente. Il parametro Value contiene l'output del Get-Date
cmdlet. Il parametro PassThru restituisce il contenuto aggiunto alla pipeline. Poiché non esiste alcun altro cmdlet per ricevere l'output, viene visualizzato nella console di PowerShell. Il Get-Content
cmdlet visualizza il file aggiornato, DateTimeFile1.log
.
Esempio 3: Aggiungere il contenuto di un file specificato a un altro file
Questo esempio ottiene il contenuto da un file e archivia il contenuto in una variabile. La variabile viene usata per aggiungere il contenuto in un altro file.
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- Il
Get-Content
cmdlet ottiene il contenuto diCopyFromFile.txt
e archivia il contenuto nella$From
variabile . - Il
Add-Content
cmdlet aggiorna ilCopyToFile.txt
file usando il contenuto della$From
variabile. - Il
Get-Content
cmdlet visualizza CopyToFile.txt.
Esempio 4: Aggiungere il contenuto di un file specificato a un altro file usando la pipeline
Questo esempio ottiene il contenuto da un file e lo invia tramite pipe al Add-Content
cmdlet .
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
Il Get-Content
cmdlet ottiene il contenuto di CopyFromFile.txt
. I risultati vengono inviati tramite pipe al Add-Content
cmdlet , che aggiorna .CopyToFile.txt
L'ultimo Get-Content
cmdlet visualizza CopyToFile.txt
.
Esempio 5: Creare un nuovo file e copiare il contenuto
Questo esempio crea un nuovo file e copia il contenuto di un file esistente nel nuovo file.
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- Il
Add-Content
cmdlet usa i parametri Path e Value per creare un nuovo file nella directory corrente. - Il
Get-Content
cmdlet ottiene il contenuto di un fileCopyFromFile.txt
esistente e lo passa al parametro Value . Le parentesi intorno alGet-Content
cmdlet assicurano che il comando venga completato prima dell'inizio delAdd-Content
comando. - Il
Get-Content
cmdlet visualizza il contenuto del nuovo file,NewFile.txt
.
Esempio 6: Aggiungere contenuto a un file di sola lettura
Questo comando aggiunge un valore al file anche se l'attributo del file IsReadOnly è impostato su True. I passaggi per creare un file di sola lettura sono inclusi nell'esempio.
New-Item -Path .\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path .\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $True
Get-ChildItem -Path .\IsReadOnlyTextFile.txt
Add-Content -Path .\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force
Get-Content -Path .\IsReadOnlyTextFile.txt
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar-- 1/28/2019 13:35 0 IsReadOnlyTextFile.txt
- Il
New-Item
cmdlet usa i parametri Path e ItemType per creare il fileIsReadOnlyTextFile.txt
nella directory corrente. - Il
Set-ItemProperty
cmdlet usa i parametri Name e Value per modificare la proprietà IsReadOnly del file su True. - Il
Get-ChildItem
cmdlet mostra che il file è vuoto (0
) e ha l'attributo di sola lettura (r
). - Il
Add-Content
cmdlet usa il parametro Path per specificare il file. Il parametro Value include la stringa di testo da aggiungere al file. Il parametro Force scrive il testo nel file di sola lettura. - Il
Get-Content
cmdlet usa il parametro Path per visualizzare il contenuto del file.
Per rimuovere l'attributo di sola lettura, usare il Set-ItemProperty
comando con il parametro Value impostato su False
.
Esempio 7: Usare filtri con componente aggiuntivo
È possibile specificare un filtro per il Add-Content
cmdlet . Quando si usano filtri per qualificare il parametro Path , è necessario includere un asterisco finale (*
) per indicare il contenuto del percorso.
Il comando seguente aggiunge la parola "Done" il contenuto di tutti i *.txt
file nella C:\Temp
directory.
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
Parametri
-AsByteStream
Specifica che il contenuto deve essere letto come flusso di byte. Questo parametro è stato introdotto in PowerShell 6.0.
Si verifica un avviso quando si usa il parametro AsByteStream con il parametro Encoding . Il parametro AsByteStream ignora qualsiasi codifica e l'output viene restituito come flusso di byte.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Nota
Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali durante l'esecuzione di questo cmdlet, usare Invoke-Command.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Encoding
Specifica il tipo di codifica per il file di destinazione. Il valore predefinito è utf8NoBOM
.
La codifica è un parametro dinamico aggiunto dal provider FileSystem al Add-Content
cmdlet . Questo parametro funziona solo nelle unità di file system.
I valori accettabili per questo parametro sono i seguenti:
ascii
: usa la codifica per il set di caratteri ASCII (a 7 bit).ansi
: usa la codifica per per la tabella codici ANSI delle impostazioni cultura correnti. Questa opzione è stata aggiunta in PowerShell 7.4.bigendianunicode
: codifica in formato UTF-16 usando l'ordine dei byte big-endian.bigendianutf32
: codifica in formato UTF-32 usando l'ordine dei byte big-endian.oem
: usa la codifica predefinita per i programmi MS-DOS e console.unicode
: codifica in formato UTF-16 usando l'ordine dei byte little-endian.utf7
: codifica in formato UTF-7.utf8
: codifica in formato UTF-8.utf8BOM
: codifica in formato UTF-8 con byte order mark (BOM)utf8NoBOM
: codifica in formato UTF-8 senza byte order mark (BOM)utf32
: codifica in formato UTF-32.
A partire da PowerShell 6.2, il parametro Encoding consente anche ID numerici di tabelle codici registrate (ad esempio ) o nomi di stringhe di tabelle codici registrate (ad esempio -Encoding 1251
-Encoding "windows-1251"
). Per altre informazioni, vedere la documentazione di .NET per Encoding.CodePage.
A partire da PowerShell 7.4, è possibile usare il Ansi
valore per il parametro Encoding per passare l'ID numerico per la tabella codici ANSI delle impostazioni cultura correnti senza doverlo specificare manualmente.
Nota
UTF-7* non è più consigliato per l'uso. A partire da PowerShell 7.1, viene scritto un avviso se si specifica utf7
per il parametro Encoding .
Tipo: | Encoding |
Valori accettati: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Posizione: | Named |
Valore predefinito: | UTF8NoBOM |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Exclude
Specifica, come matrice di stringhe, un elemento o elementi esclusi dal cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt
. I caratteri jolly sono consentiti. Il parametro Exclude è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, dove il carattere jolly specifica il contenuto della C:\Windows
directory.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Filter
Specifica un filtro per qualificare il parametro Path . Il provider FileSystem è l'unico provider di PowerShell installato che supporta l'uso dei filtri. È possibile trovare la sintassi per il 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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Force
Esegue l'override dell'attributo di sola lettura, consentendo di aggiungere contenuti a un file di sola lettura. Ad esempio, Force esegue l'override dell'attributo di sola lettura, ma non modifica le autorizzazioni per i file.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Include
Specifica, come matrice di stringhe, un elemento o elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio "*.txt"
. I caratteri jolly sono consentiti. Il parametro Include è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, dove il carattere jolly specifica il contenuto della C:\Windows
directory.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-LiteralPath
Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo 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.
Tipo: | String[] |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-NoNewline
Indica che questo cmdlet non aggiunge una nuova riga o ritorno a capo al contenuto.
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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto che rappresenta il contenuto aggiunto. Per impostazione predefinita, questo cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso degli elementi che riceveranno il contenuto aggiuntivo. I caratteri jolly sono consentiti. È necessario usare percorsi di elementi, non di contenitori. Ad esempio, è necessario specificare un percorso di uno o più file, non di una directory. Se si specificano più percorsi, separarli con la virgola.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-Stream
Nota
Questo parametro è disponibile solo in Windows.
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 Add-Content
. Questo parametro funziona solo nelle unità di file system.
È possibile usare il Add-Content
cmdlet per modificare 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 Unblock-File
cmdlet .
Questo parametro è stato introdotto in PowerShell 3.0. A partire da PowerShell 7.2, Add-Content
può essere destinato a flussi di dati alternativi su file e directory.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Value
Specifica il contenuto da aggiungere. Digitare una stringa tra virgolette, ad esempio Questi dati sono solo per uso interno o specificare un oggetto che contiene contenuto, ad esempio l'oggetto DateTime generato Get-Date
.
Non è possibile specificare il contenuto di un file digitandone il percorso, perché il percorso è solo una stringa.
È possibile usare un Get-Content
comando per ottenere il contenuto e passarlo al parametro Value .
Tipo: | Object[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe i valori a Add-Content
.
È possibile inviare tramite pipe le credenziali a Add-Content
.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si utilizza il parametro PassThru , questo cmdlet restituisce un oggetto System.String che rappresenta il contenuto.
Note
PowerShell include gli alias seguenti per Add-Content
:
Windows:
ac
Quando si invia tramite pipe un oggetto a
Add-Content
, l'oggetto viene convertito in una stringa prima che venga aggiunto all'elemento. Il tipo di oggetto determina il formato della stringa che però può essere diverso rispetto alla visualizzazione predefinita dell'oggetto. Per controllare il formato della stringa, usare i parametri di formattazione del cmdlet di origine.Il
Add-Content
cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitareGet-PSProvider
. Per altre informazioni, vedere about_Providers.