Add-Content

将内容添加到指定项,例如向文件添加字词。

语法

Path (默认值)

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>]

LiteralPath

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>]

说明

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

如果需要为以下示例创建文件或目录,请参阅 New-Item

示例

示例 1:向所有文本文件添加字符串,但有例外

本示例将一个值追加到当前目录中的文本文件,但会根据其文件名排除文件。

Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'

cmdlet Add-Content 使用 Path 参数指定当前目录中的所有 .txt 文件。 Exclude 参数将忽略与指定模式匹配的文件名。 Value 参数指定写入文件的文本字符串。

使用 Get-Content 来显示这些文件的内容。

示例 2:将日期添加到指定文件的末尾

本示例将日期追加到当前目录中的文件,并在 PowerShell 控制台中显示日期。

Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log

cmdlet Add-Content 使用 PathValue 参数在当前目录中创建两个新文件。 Value 参数指定Get-Date用于获取日期的 cmdlet 并将日期传递给 Add-Content. 该 Add-Content cmdlet 将日期写入每个文件。 PassThru 参数传递表示日期对象的对象。 由于没有其他 cmdlet 来接收传递的对象,因此它将显示在 PowerShell 控制台中。 cmdlet Get-Content 显示更新的文件 DateTimeFile1.log。

示例 3:将指定文件的内容添加到另一个文件

此示例从一个文件中获取内容,并将该内容附加到另一个文件中。

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

cmdlet Add-Content 使用 Path 参数指定当前目录中的新文件 CopyToFile.txt。 Value 参数使用 Get-Content cmdlet 获取文件的内容,CopyFromFile.txt. Get-Content cmdlet 周围的括号可确保命令在 Add-Content 命令开始之前完成。 将 Value 参数传递给 Add-Content。 该 Add-Content cmdlet 将数据附加到 CopyToFile.txt 文件。 cmdlet Get-Content 显示更新的文件 CopyToFile.txt。

示例 4:使用变量将指定文件的内容添加到另一个文件

此示例从文件获取内容,并将内容存储在变量中。 该变量用于将内容追加到另一个文件中。

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt

cmdlet Get-Content 获取 CopyFromFile.txt 的内容并将内容存储在变量中 $From 。 cmdlet Add-Content 使用 Path 参数指定当前目录中的 CopyToFile.txt 文件。 参数的 Value 使用变量 $From 并将内容 Add-Content传递给 。 cmdlet Add-Content 更新 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-Content cmdlet 使用 PathValue 参数在当前目录中创建新文件。 Value 参数使用 Get-Content cmdlet 获取现有文件 CopyFromFile.txt的内容。 Get-Content cmdlet 周围的括号可确保命令在 Add-Content 命令开始之前完成。 Value 参数传递Add-Content将 NewFile.txt 文件更新到的内容。 该 Get-Content cmdlet 显示新文件 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

cmdlet New-Item 使用 PathItemType 参数在当前目录中创建文件 IsReadOnlyTextFile.txt。 Set-ItemProperty cmdlet 使用 NameValue 参数将文件的 IsReadOnly 属性更改为 True。 该 Get-ChildItem cmdlet 显示文件为空 (0) 并具有只读属性 ()。r Add-Content cmdlet 使用 Path 参数来指定文件。 Value 参数包括要追加到文件的文本字符串。 Force 参数将文本写入只读文件。 Get-Content cmdlet 使用 Path 参数来显示文件的内容。

若要删除只读属性,请使用 Set-ItemProperty 命令,并将 参数设置为 False

参数

-Confirm

在运行 cmdlet 之前,提示你进行确认。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Credential

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

键入用户名(如 User01Domain01\User01),或输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的用户名。 如果键入用户名,系统会提示输入密码。

警告

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

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Encoding

指定目标文件的编码类型。 默认值是 Default

此参数的可接受值如下所示:

  • ASCII 使用 ASCII(7 位)字符集。
  • BigEndianUnicode 使用具有 big-endian 字节顺序的 UTF-16。
  • BigEndianUTF32 使用具有 big-endian 字节顺序的 UTF-32。
  • 字节 将一组字符编码为字节序列。
  • 默认 使用与系统的活动代码页(通常是 ANSI)对应的编码。
  • OEM 使用与系统的当前 OEM 代码页对应的编码。
  • 字符串Unicode相同。
  • Unicode 使用具有小字节顺序的 UTF-16。
  • 未知 与 unicode相同。
  • UTF7 使用 UTF-7。
  • UTF8 使用 UTF-8。
  • UTF32 使用具有小字节顺序的 UTF-32。

编码是 FileSystem 提供程序添加到 Add-Content cmdlet 中的动态参数。 此参数仅适用于文件系统驱动器。

参数属性

类型:FileSystemCmdletProviderEncoding
默认值:Default
接受的值:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Exclude

省略指定的项。 此参数的值定义了 Path 参数的限定条件。 输入路径元素或模式,如 *.txt。 允许使用通配符。

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Filter

以提供程序的格式或语言指定筛选器。 此参数的值定义了 Path 参数的限定条件。 筛选器的语法(包括通配符的使用)取决于提供程序。 筛选器 比其他参数更高效,因为提供程序在检索对象时应用筛选器。 否则,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

仅添加指定的项目。 此参数的值定义了 Path 参数的限定条件。 输入路径元素或模式,如 *.txt。 允许使用通配符。

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-LiteralPath

指定接收其他内容的项目的路径。 与 路径不同,LiteralPath 的值是按照输入内容原样使用的。 不会将任何字符解释为通配符。 如果路径包含转义字符,请将它括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False
别名:PSPath

参数集

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

指定内容的备用数据流。 如果该流不存在,则此 cmdlet 会创建它。 不支持通配符。

Stream 是一个由 FileSystem 提供程序添加至 Add-Content的动态参数。 此参数仅适用于文件系统驱动器。

可以使用 Add-Content cmdlet 更改 Zone.Identifier 备用数据流的内容。 但是,我们不建议这样做,以此消除阻止从 Internet 下载的文件的安全检查。 如果验证下载的文件是否安全,请使用 Unblock-File cmdlet。

此参数是在 PowerShell 3.0 中引入的。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-UseTransaction

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

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:usetx

参数集

(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 运行时会发生什么情况。 命令脚本未运行。

参数属性

类型: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

输入

System.Object, System.Management.Automation.PSCredential

您可以通过管道将值、路径或凭据传递给 Set-Content

输出

None or System.String

使用 PassThru 参数时,Add-Content 生成表示内容的 System.String 对象。 否则,此 cmdlet 不会生成任何输出。

备注

当您将对象通过管道传输到 Add-Content时,该对象会先转换为字符串,然后再将其添加到项目中。 对象类型确定字符串格式,但格式可能与对象的默认显示不同。 若要控制字符串格式,请使用发送 cmdlet 的格式参数。

还可以通过其内置别名 Add-Content来引用 ac。 有关详细信息,请参阅 about_Aliases

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