Condividi tramite


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 di CopyFromFile.txt e archivia il contenuto nella $From variabile .
  • Il Add-Content cmdlet aggiorna il CopyToFile.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 file CopyFromFile.txt esistente e lo passa al parametro Value . Le parentesi intorno al Get-Content cmdlet assicurano che il comando venga completato prima dell'inizio del Add-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 file IsReadOnlyTextFile.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

Object

È possibile inviare tramite pipe i valori a Add-Content.

PSCredential

È possibile inviare tramite pipe le credenziali a Add-Content.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

String

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, digitare Get-PSProvider. Per altre informazioni, vedere about_Providers.