Add-Content

Append content to a specified item or file. You can specify the content by typing the content in the command or by specifying an object that contains the content.

Syntax
      Add-Content [-Value] Object[] [-Credential PSCredential]
         [-Encoding {Unknown | String | Unicode | Byte | BigEndianUnicode | UTF8 | UTF7 | UTF32 | Ascii | Default | Oem | BigEndianUTF32}]
            [-Exclude string[]] [-Filter string] [-Force] [-Include string[]] -LiteralPath string[]
               [-NoNewline] [-PassThru] [-Stream string] [-UseTransaction]
                  [-Confirm] [-WhatIf] [CommonParameters]

      Add-Content [-Path] string[] [-Value] Object[]  [-Credential PSCredential]
         [-Encoding {Unknown |  String | Unicode | Byte | BigEndianUnicode | UTF8 | UTF7 | UTF32 | Ascii | Default | Oem | BigEndianUTF32}]
            [-Exclude string[]] [-Filter string] [-Force] [-Include string[]]
               [-NoNewline] [-PassThru] [-Stream string] [-UseTransaction]
                  [-Confirm] [-WhatIf] [CommonParameters]

      Add-Content [-Encoding {Unknown | String | Unicode | Byte | BigEndianUnicode | UTF8 | UTF7 | UTF32 | Ascii | Default | Oem}]
         [-Force] [-Stream string]
            [-Confirm] [-WhatIf] [-UseTransaction] [CommonParameters]

Key
   -Path path
       The path to the item {may be piped} Wildcards are permitted.
       If you specify multiple paths, use commas to separate the paths.

   -LiteralPath string[]
       Path to the items that receive the additional content. No wildcards.
       The value is used exactly as typed. 
       If the path includes escape characters, enclose it in single quotation marks.

   -Include string[]
       Qualify the Path parameter. Enter a path or wildcard pattern: "*.txt"

   -Exclude string[]
       Omit the specified items. Enter a path or wildcard pattern: "*.txt" 

   -Filter string[]
       A filter in the provider's format or language.
       The exact syntax of the filter (wildcard support etc) depends on the provider.
       Filters are more efficient than -include/-exclude, because the provider
       applies the filter when retrieving the objects, rather than having 
       PowerShell filter the objects after they are retrieved.     
 
  -Value Object[]
       The content to be added. Type a quoted string, such as "Sample text"
       or specify an object that contains content, such as the DateTime object
       that Get-Date generates. 
       You cannot specify the contents of a file by typing its path, because 
       the path is just a string, but you can use a Get-Content command to get 
       the content and pass it to the Value parameter.

   -PassThru
       Pass the object created by this cmdlet through the pipeline.

   -Force
       Override restrictions that prevent the command from succeeding, just
       so the changes do not compromise security. For example, -Force will
       override the read-only attribute but it will not attempt to change file permissions.
       Add-Content will create directories to complete a path even without the -Force parameter.

   -NoNewline
       Do not add a new line/carriage return to the content.
       This parameter is not supported by any providers installed with PowerShell.

   -Credential PSCredential
       Present a user/password credential to validate access to the file.
       This is not yet supported in any Windows PowerShell core commands.

   -Confirm
       Prompt for confirmation before executing the command.

   -WhatIf
       Describe what would happen if you executed the command without actually executing it.

   -UseTransaction
       Include the command in the active transaction.

   -Encoding CharSet[Dynamic Parameter (FileSystem Only)]
       Encode in a specific character set:
           ASCII             ASCII (7-bit) character set.
           Byte              Encode characters as a sequence of bytes.
           BigEndianUnicode  UTF-16 format big-endian byte order.
           BigEndianUTF32    UTF-32 format big-endian byte order.
           UTF8              UTF-8 format.
           UTF7              UTF-7 format.
           String            Use the encoding type for a string. 
           Unknown           Unknown or invalid. The data can be treated as binary.
           Unicode           UTF-16 format little-endian byte order.

   -Stream string
        Add the content to the specified alternate data stream.
        If the stream does not yet, exist, Add-Content creates it.
        Enter the stream name. Wildcards are not supported.
        Stream is a dynamic FileSystem parameter (PowerShell 3.0+)

   CommonParameters:
       -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
       -OutBuffer -OutVariable.

Standard Aliases for Add-Content: ac

Examples

Add a text string to the end of every .TXT file in the current directory:

C:\PS> add-content -path *.txt -value "This is the end"

Add the content of the file Cats.txt to the end of the file Pets.txt:

C:\PS> add-content -path pets.txt -value (get-content c:\docs\cats.txt)

The parentheses above insure Get-Content can complete before the Add-Content starts.
We specify -value to pass the contents of the file (rather than an object.)

Add the current date to a logfile:

C:\PS> add-content -Path MyLogfile.txt -Value (get-date) -passthru

The -passthru option will display the content as it is added, it actually passes an object through the pipeline, which by default is passed back to the command line.

A function to write one line of text to a log file:

function Add-LogFile([string] $line)
{
   $mainLogFile = "$env:TEMP\ss64Demo-Log.txt"
   Add-Content -Path $ mainLogFile -Value $line
}

“Content is king” - Webmonkey @Wired.com circa 1996

Related PowerShell Commands:

Get-Content - Get content from item (specific location)
Set-Content - Set content in the item (specific location)
Clear-Content - Remove content from a file/item
Escape characters, Delimiters and Quotes - Add special characters (newlines, tabs etc)
Get-Item - Get a file object or get a registry (or other namespace) object
get-help - about_namespace


Copyright © SS64.com 1999-2019
Some rights reserved