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]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]
Add-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]

Descrizione

Il Add-Content cmdlet aggiunge contenuto a un elemento o a un file specificato. È possibile specificare il contenuto digitandolo nel comando o specificando un oggetto che lo contiene.

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 Add-Content cmdlet usa il parametro Path per specificare tutti i file .txt nella directory corrente. 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

Il Add-Content cmdlet usa i parametri Path e Value per creare due nuovi file nella directory corrente. Il parametro Value consente di specificare il Get-Date cmdlet per ottenere la data e passare la data a Add-Content. Il Add-Content cmdlet scrive la data in ogni file. Il parametro PassThru passa un oggetto che rappresenta l'oggetto date. Poiché non è disponibile alcun altro cmdlet per ricevere l'oggetto passato, 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

In questo esempio il contenuto viene ottenuto da un file e lo aggiunge a un altro file.

Add-Content -Path .\CopyToFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\CopyToFile.txt

Il Add-Content cmdlet usa il parametro Path per specificare il nuovo file nella directory corrente CopyToFile.txt. Il parametro Value usa il Get-Content cmdlet per ottenere il contenuto del file CopyFromFile.txt. Le parentesi intorno al Get-Content cmdlet assicurano che il comando venga completato prima dell'inizio del Add-Content comando. Il parametro Value viene passato a Add-Content. Il Add-Content cmdlet aggiunge i dati al file CopyToFile.txt. Il Get-Content cmdlet visualizza il file aggiornato CopyToFile.txt.

Esempio 4: Usare una variabile per 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 usa il parametro Path per specificare il file CopyToFile.txt nella directory corrente. Il parametro Value usa la $From variabile e passa il contenuto a Add-Content. Il Add-Content cmdlet aggiorna il file CopyToFile.txt. Il Get-Content cmdlet visualizza CopyToFile.txt.

Esempio 5: Create un nuovo file e copiare il contenuto

In questo esempio viene creato un nuovo file e viene copiato 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 parametro Value usa il Get-Content cmdlet per ottenere il contenuto di un file esistente CopyFromFile.txt. Le parentesi intorno al Get-Content cmdlet assicurano che il comando venga completato prima dell'inizio del Add-Content comando. Il parametro Value passa il contenuto a Add-Content cui aggiorna il file NewFile.txt. 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 il 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.

Parametri

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente.

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

Avviso

Questo parametro non è supportato da alcun provider installato con PowerShell.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

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

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.
  • Predefinito 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.
  • Stringa Uguale a Unicode.
  • Unicode Usa UTF-16 con l'ordine dei byte little-endian.
  • Sconosciuto Uguale a Unicode.
  • UTF7 Usa UTF-7.
  • UTF8 Usa UTF-8.
  • UTF32 Usa UTF-32 con l'ordine dei byte little-endian.

La codifica è un parametro dinamico aggiunto dal provider FileSystem al Add-Content cmdlet . Questo parametro funziona solo nelle unità di file system.

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un criterio di percorso, ad esempio *.txt. I caratteri jolly sono consentiti.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

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'uso dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri perché il provider applica filtri quando vengono recuperati gli oggetti. In caso contrario, PowerShell elabora i filtri dopo il recupero degli oggetti.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Esegue l'override dell'attributo di sola lettura, consentendo di aggiungere contenuti a un file di sola lettura. Ad esempio, Force eseguirà l'override dell'attributo di sola lettura o creerà le directory per completare un percorso di file, ma non tenterà di modificare le autorizzazioni file.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Aggiunge solo gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un criterio di percorso, ad esempio *.txt. I caratteri jolly sono consentiti.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Specifica il percorso degli elementi che riceveranno il contenuto aggiuntivo. A differenza di quanto accade con Path, il valore di LiteralPath viene usato esattamente com'è 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.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

Indica che questo cmdlet non aggiunge una nuova riga o un 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Specifica il percorso degli elementi che riceveranno il contenuto aggiuntivo. I caratteri jolly sono consentiti. Se si specificano più percorsi, separarli con la virgola.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Stream

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 del flusso di dati alternativo Zone.Identifier . Tuttavia, non è consigliabile farlo come un 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

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

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:Object[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

System.Object, System.Management.Automation.PSCredential

È possibile inviare tramite pipe valori, percorsi o credenziali a Set-Content.

Output

None or System.String

Quando si utilizza il parametro PassThru , Add-Content genera un oggetto System.String che rappresenta il contenuto. In caso contrario, il cmdlet non genera alcun output.

Note

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.

È anche possibile fare riferimento al Add-Content relativo alias predefinito, ac. Per altre informazioni, vedere about_Aliases.

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.