Add-Content
将内容添加到指定项,例如向文件添加字词。
语法
Path (默认值)
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>]
		LiteralPath
	 
	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>]
说明
              Add-Content cmdlet 将内容追加到指定的项或文件中。 可以通过管道传入内容,也可以使用 Value 参数进行指定。
如果需要为以下示例创建文件或目录,请参阅 New-Item。
示例
示例 1:向所有文本文件添加字符串,但有例外
本示例将一个值追加到当前目录中的文本文件,但会根据其文件名排除文件。
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
              Path 参数指定当前目录中的所有 .txt 文件,但 Exclude 参数将忽略与指定模式匹配的文件名。 
              Value 参数指定写入文件的文本字符串。
使用 Get-Content 来显示这些文件的内容。
示例 2:将日期添加到指定文件的末尾
本示例将日期追加到当前目录中的文件,并在 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
              Add-Content cmdlet 在当前目录中创建两个新文件。 
              
              Value 参数包含 Get-Date cmdlet 的输出。 
              PassThru 参数将添加的内容输出到管道。 由于没有其他 cmdlet 接收输出,因此它将显示在 PowerShell 控制台中。 
              Get-Content cmdlet 显示的更新文件为 DateTimeFile1.log。
示例 3:将指定文件的内容添加到另一个文件
此示例从文件获取内容,并将内容存储在变量中。 该变量用于将内容追加到另一个文件中。
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- 
              Get-Contentcmdlet 获取CopyFromFile.txt的内容,并将内容存储在$From变量中。
- 
              Add-Contentcmdlet 使用CopyToFile.txt变量的内容更新$From文件。
- 
              Get-Contentcmdlet 显示 CopyToFile.txt。
示例 4:使用管道将指定文件的内容添加到另一个文件中
此示例从文件获取内容,并将其通过管道传递给 Add-Content cmdlet。
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
              Get-Content cmdlet 获取 CopyFromFile.txt 的内容。 结果通过管道传递给 Add-Content cmdlet,后者对 CopyToFile.txt 进行更新。
最后一个 Get-Content cmdlet 显示 CopyToFile.txt。
示例 5:创建新文件和复制内容
此示例创建一个新文件,并将现有文件的内容复制到新文件中。
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- 
              Add-Contentcmdlet 使用 Path 和 Value 参数在当前目录中创建新文件。
- 
              Get-Contentcmdlet 获取现有文件CopyFromFile.txt的内容,并将其传递给 Value 参数。Get-Contentcmdlet 周围的括号可确保命令在Add-Content命令开始之前完成。
- 
              Get-Contentcmdlet 显示新文件NewFile.txt的内容。
示例 6:将内容添加到只读文件
即使 IsReadOnly 文件属性 设置为 true,此命令也会向文件添加一个值。 创建只读文件的步骤包含在示例中。
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
- 
              New-Itemcmdlet 使用 Path 和 ItemType 参数在当前目录中创建文件IsReadOnlyTextFile.txt。
- 
              Set-ItemPropertycmdlet 使用 Name 和 Value 参数将文件的 IsReadOnly 属性更改为 True。
- 
              Get-ChildItemcmdlet 显示文件为空(0),并且具有只读属性(r)。
- 
              Add-Contentcmdlet 使用 Path 参数来指定文件。 Value 参数包括要追加到文件的文本字符串。 Force 参数将文本写入只读文件。
- 
              Get-Contentcmdlet 使用 Path 参数来显示文件的内容。
若要删除只读属性,请使用 Set-ItemProperty 命令,并将 值 参数设置为 False。
示例 7:将筛选器与 Add-Content 配合使用
可以为 Add-Content cmdlet 指定一个筛选器。 使用筛选器限定 Path 参数时,需要包含尾随星号(*),以指示路径的内容。
以下命令将单词“Done”添加到 *.txt 目录中所有 C:\Temp 文件的内容中。
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
参数
-AsByteStream  
		指定应以字节流的形式读取内容。 此参数是在 PowerShell 6.0 中引入的。
将 AsByteStream 参数与 Encoding 参数一起使用时,将发生警告。 AsByteStream 参数将忽略任何编码,输出将作为字节流返回。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Confirm
在运行 cmdlet 之前,提示你进行确认。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | cf | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Credential
注释
任何随 PowerShell 一起安装的提供程序都不支持此参数。 要模拟其他用户,或在运行此 cmdlet 时提升凭据,请使用 Invoke-Command。
参数属性
| 类型: | PSCredential | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | True | 
| 来自剩余参数的值: | False | 
-Encoding
指定目标文件的编码类型。 默认值是 utf8NoBOM。
编码是 FileSystem 提供程序添加到 Add-Content cmdlet 中的动态参数。 此参数仅适用于文件系统驱动器。
此参数的可接受值如下所示:
- 
              ascii:对 ASCII(7 位)字符集使用编码。
- 
              ansi:对当前区域性的 ANSI 代码页使用编码。 此选项已在 PowerShell 7.4 中添加。
- 
              bigendianunicode:使用大端字节序以 UTF-16 格式进行编码。
- 
              bigendianutf32:使用大端字节顺序以 UTF-32 格式进行编码。
- 
              oem:对 MS-DOS 和控制台程序使用默认编码。
- 
              unicode:使用小端字节序以 UTF-16 格式进行编码。
- 
              utf7:采用 UTF-7 格式编码。
- 
              utf8:采用 UTF-8 格式编码。
- 
              utf8BOM:以 UTF-8 格式编码并附加字节顺序标记(BOM)
- 
              utf8NoBOM:采用不带字节顺序标记(BOM)的 UTF-8 格式进行编码。
- 
              utf32:采用 UTF-32 格式编码。
从 PowerShell 6.2 开始,编码参数 还允许使用注册代码页的数字 ID(如 -Encoding 1251)或注册代码页的字符串名称(如 -Encoding "windows-1251")。 有关详细信息,请参阅 Encoding.CodePage.NET 文档。
从 PowerShell 7.4 开始,可以使用 Ansi 参数的  值来传递当前区域性 ANSI 代码页的数字 ID,而无需手动指定它。
注释
              UTF-7* 不再推荐使用。 从 PowerShell 7.1 起,如果为 utf7 参数指定 ,则会编写警告。
参数属性
| 类型: | Encoding | 
| 默认值: | UTF8NoBOM | 
| 接受的值: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Exclude
指定一个或多个在操作中被此 cmdlet 排除的项目,以字符串数组的形式表示。 此参数的值定义了 Path 参数的限定条件。 输入路径元素或模式,例如 *.txt。 允许使用通配符。 仅当命令包含项(如 )的内容(其中通配符指定 C:\Windows\* 目录的内容)时,C:\Windows 参数才有效。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Filter
指定筛选器以限定 Path 参数。 唯一支持使用筛选器的 PowerShell 提供程序是已安装的 FileSystem 提供程序。 可以在 about_Wildcards中找到 FileSystem 筛选器语言的语法。 筛选器比其他参数更有效,因为提供程序在 cmdlet 获取对象时应用它们,而不是在检索对象后让 PowerShell 筛选对象。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Force
覆盖只读属性,使你可以将内容添加到只读文件。 例如,Force 会替代只读属性,但不会更改文件权限。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Include
指定一个或多个此 cmdlet 在操作中包含的项,这些项以字符串数组形式表示。 此参数的值定义了 Path 参数的限定条件。 输入路径元素或模式,例如 "*.txt"。 允许使用通配符。 仅当命令包含某项的内容(例如 ,其中通配符指定 C:\Windows\* 目录的内容)时,C:\Windows 参数才有效。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-LiteralPath 
		指定通向一个或多个位置的路径。 LiteralPath 的值严格按照所键入的形式使用。 不会将任何字符解释为通配符。 如果路径包含转义字符,请将它括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。
有关详细信息,请参阅 about_Quoting_Rules。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | PSPath, LP | 
参数集
					LiteralPath 
					
				 
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | True | 
| 来自剩余参数的值: | False | 
-NoNewline 
		指示此 cmdlet 不要向内容中添加换行符或回车符。
输入对象的字符串表示形式串联成输出。 输出字符串之间不插入空格或换行符。 最后一个输出字符串后不添加换行符。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-PassThru 
		返回一个对象,该对象表示添加的内容。 默认情况下,此 cmdlet 不会生成任何输出。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Path
指定接收其他内容的项目的路径。 允许使用通配符。 路径必须是项的路径,而不是容器的路径。 例如,必须指定一个或多个文件的路径,而不是目录的路径。 如果指定多个路径,请使用逗号分隔路径。
参数属性
| 类型: | String[] | 
| 默认值: | None | 
| 支持通配符: | True | 
| 不显示: | False | 
参数集
Path
| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | True | 
| 来自剩余参数的值: | False | 
-Stream
注释
此参数仅在 Windows 上可用。
指定内容的备用数据流。 如果该流不存在,则此 cmdlet 会创建该流。 不支持通配符。
              Stream 是一个由 FileSystem 提供程序添加至 Add-Content的动态参数。 此参数仅适用于文件系统驱动器。
可以使用 Add-Content cmdlet 更改任何备用数据流的内容,例如 Zone.Identifier。 但是,我们不建议这样做,以消除阻止从 Internet 下载的文件的安全检查。 如果验证下载的文件是否安全,请使用 Unblock-File cmdlet。
此参数是在 PowerShell 3.0 中引入的。  从 PowerShell 7.2 起,Add-Content 可以针对文件和目录上的备用数据流。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Value
指定要添加的内容。 键入带引号的字符串(如 此数据仅供内部使用),或指定包含内容的对象,例如  生成的 Get-Date 对象。
无法通过键入文件路径来指定文件的内容,因为路径只是一个字符串。
可以使用 Get-Content 命令获取内容并将其传递给 Value 参数。
参数属性
| 类型: | Object[] | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | 1 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | True | 
| 来自剩余参数的值: | False | 
-WhatIf 
		显示 cmdlet 运行时会发生什么情况。 cmdlet 未能运行。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | 无线 | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
Object
可以通过管道将值传递给 Add-Content。
PSCredential
可以通过管道将凭据传递给 Add-Content。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
String
使用 PassThru 参数时,此 cmdlet 返回表示内容的 System.String 对象。
备注
PowerShell 包含以下与 Add-Content相关的别名:
- 窗户: - ac
 
- 通过管道将对象传递给 - Add-Content时,该对象将转换为字符串,然后再添加到条目中。 对象类型确定字符串格式,但格式可能与对象的默认显示不同。 若要控制字符串格式,请使用发送 cmdlet 的格式参数。
- Add-Contentcmdlet 用于处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入- Get-PSProvider。 有关详细信息,请参阅 about_Providers。