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 Cmdlets:
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.