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 使用 Path 和 Value 参数在当前目录中创建两个新文件。
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 使用 Path 和 Value 参数在当前目录中创建新文件。
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 使用 Path 和 ItemType 参数在当前目录中创建文件 IsReadOnlyTextFile.txt。
Set-ItemProperty cmdlet 使用 Name 和 Value 参数将文件的 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
指定有权执行此作的用户帐户。 默认值为当前用户。
键入用户名(如 User01 或 Domain01\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。