Add-Content

向指定的项中添加内容,如向文件中添加字词。

语法

Add-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Add-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

说明

Add-Content cmdlet 将内容追加到指定项或指定的文件中。可以通过在命令中键入内容或通过指定包含内容的对象来指定内容。

参数

-Credential <PSCredential>

指定有权执行此操作的用户帐户。默认值为当前用户。

键入用户名,如“User01”或“Domain01\User01”;或输入 PSCredential 对象,如 Get-Credential cmdlet 生成的一个 PSCredential 对象。如果键入用户名,则将提示您输入密码。

随同 Windows PowerShell 一起安装的任何提供程序都不支持此参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Exclude <string[]>

忽略指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Filter <string>

以提供程序的格式或语言指定筛选器。此参数的值对 Path 参数进行限定。筛选器的语法(包括通配符的使用)取决于提供程序。筛选器比其他参数更有效,因为提供程序是在检索对象时应用筛选器,而不是在检索对象后再由 Windows PowerShell 筛选对象。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

覆盖只读属性,从而允许您向只读文件中添加内容。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Include <string[]>

只添加指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-LiteralPath <string[]>

指定用于接收其他内容的项的路径。与 Path 不同,LiteralPath 的值严格按照所键入的形式使用。不会将任何字符解释为通配符。如果路径包括转义符,请将其括在单引号中。单引号会告知 Windows PowerShell 不要将所有字符都解释为转义序列。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-PassThru

返回一个表示所添加内容的对象。默认情况下,此 cmdlet 将不产生任何输出。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Path <string[]>

指定用于接收其他内容的项的路径。允许使用通配符。如果指定多个路径,请使用逗号分隔这些路径。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Value <Object[]>

指定要添加的内容。键入用引号引起来的字符串,例如 "This data is for internal use only";或指定包含内容的对象,例如 Get-Date 生成的 DateTime 对象。

无法通过键入文件路径来指定文件内容,因为路径只是一个字符串,但可以使用 Get-Content 命令来获取内容并将其传递给 Value 参数。

是否为必需?

true

位置?

2

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-Confirm

在执行命令之前提示您进行确认。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-WhatIf

描述如果执行该命令会发生什么情况(无需实际执行该命令)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Object

可以通过管道将要添加的对象 (Value) 传递给 Add-Content。

输出

“无”或 System.String

如果使用 Passthru 参数,则 Add-Content 生成一个表示内容的 System.String 对象。否则,此 cmdlet 将不产生任何输出。

说明

在将对象通过管道传送给 Add-Content 时,该对象将先转换为字符串,然后再添加到项目。对象类型决定字符串格式,但该格式可能不同于该对象的默认显示。要控制字符串格式,请使用发送 cmdlet 的格式设置参数。

还可以使用 Add-Content 的内置别名“ac”来对其进行引用。有关详细信息,请参阅 about_Aliases。

Add-Content cmdlet 用于处理由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“Get-PsProvider”。有关详细信息,请参阅 about_Providers。

示例 1

C:\PS>add-content -path *.txt -exclude help* -value "END"

说明
-----------
此命令将“END”添加到当前目录内的所有文本文件中,但文件名以“help”开头的文本文件除外。





示例 2

C:\PS>add-content -Path file1.log, file2.log -Value (get-date) -passthru

说明
-----------
此命令将日期添加到 File1.log 和 File2.log 文件的末尾,然后在命令行中显示该日期。此命令使用 Get-Date cmdlet 来获取日期,并使用 Value 参数将该日期传递给 Add-Content。PassThru 参数通过管道传递表示所添加内容的对象。由于没有其他任何 cmdlet 接收所传递的对象,因此该对象将显示在命令行中。





示例 3

C:\PS>add-content -path monthly.txt -value (get-content c:\rec1\weekly.txt)

说明
-----------
此命令将 Weekly.txt 文件的内容添加到 Monthly.txt 文件的末尾。此命令使用 Get-Content cmdlet 获取 Weekly.txt 文件的内容,并使用 Value 参数将 weekly.txt 的内容传递给 Add-Content。括号可确保 Get-Content 命令在 Add-Content 命令开始之前已完成。

还可以将 Weekly.txt 的内容复制为变量(例如,$w),然后使用 Value 参数将该变量传递给 Add-Content。在这种情况下,命令将为“add-content -path monthly.txt -value $w”。





示例 4

C:\PS>add-content -value (get-content test.log) -path C:\tests\test134\logs\test134.log

说明
-----------
此命令将创建一个新目录和文件,并将现有文件的内容复制到新创建的文件中。

此命令使用 Add-Content cmdlet 来添加内容。Value 参数的值是从现有文件 Test.log 获取内容的 Get-Content 命令。

path 参数的值是此命令运行时不存在的路径。在此示例中,只存在 C:\Tests 目录。此命令将创建剩余的目录和 Test134.log 文件。

Force 参数不是此命令的必需参数。即使没有 Force 参数,Add-Content 也会创建目录来完成路径。





另请参阅

概念

about_providers
Get-Content
Set-Content
Clear-Content
Get-Item