添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

如果需要为以下示例创建文件或目录,请参阅 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 参数包含 cmdlet 的 Get-Date 输出。 PassThru 参数将添加的内容输出到管道。 由于没有其他 cmdlet 可以接收输出,因此它将显示在 PowerShell 控制台中。 cmdlet Get-Content 显示更新的文件 DateTimeFile1.log

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

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

$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 使用 变量的内容 $From 更新 CopyToFile.txt 文件。
  • cmdlet Get-Content 显示CopyToFile.txt。
  • 示例 4:使用管道将指定文件的内容添加到另一个文件

    此示例从文件获取内容并将其管道传递给 Add-Content cmdlet。

    Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
    Get-Content -Path .\CopyToFile.txt

    cmdlet Get-Content 获取 的内容 CopyFromFile.txt 。 结果通过管道传递给 Add-Content cmdlet,该 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
  • cmdlet Add-Content 使用 Path Value 参数在当前目录中创建新文件。
  • cmdlet Get-Content 获取现有文件的内容, CopyFromFile.txt 并将其传递给 Value 参数。 cmdlet 周围的 Get-Content 括号可确保命令在命令开始之前 Add-Content 完成。
  • cmdlet Get-Content 显示新文件 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
  • cmdlet Set-ItemProperty 使用 Name Value 参数将文件的 IsReadOnly 属性更改为 True。
  • cmdlet Get-ChildItem 显示文件为空 ( 0 ) ,并且具有只读属性 ( r ) 。
  • cmdlet Add-Content 使用 Path 参数指定文件。 Value 参数包括要追加到文件的文本字符串。 Force 参数将文本写入只读文件。
  • cmdlet Get-Content 使用 Path 参数显示文件的内容。
  • 若要删除只读属性,请使用 Set-ItemProperty Value 参数设置为 False 的 命令。

    示例 7:将筛选器与Add-Content

    可以指定 cmdlet 的 Add-Content 筛选器。 使用筛选器限定 Path 参数时,需要包含尾随星号 ( * ) 以指示路径的内容。

    以下命令将“完成”一词添加到目录中所有 *.txt 文件 C:\Temp 的内容。

    Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"

    -AsByteStream

    指定内容应作为字节流进行读取。 此参数是在 PowerShell 6.0 中引入的。

    AsByteStream 参数与 Encoding 参数一起使用时,会出现警告。 AsByteStream 参数将忽略任何编码,输出将作为字节流返回。

    Type: SwitchParameter Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Confirm

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

    Type: SwitchParameter Aliases:cf Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -Credential

    随 PowerShell 一起安装的任何提供程序都不支持此参数。 若要模拟其他用户,或在运行此 cmdlet 时提升凭据,请使用 Invoke-Command

    指定目标文件的编码类型。 默认值为 utf8NoBOM

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

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

  • ascii :使用 ASCII (7 位) 字符集的编码。
  • bigendianunicode :使用 big-endian 字节顺序以 UTF-16 格式进行编码。
  • bigendianutf32 :使用 big-endian 字节顺序以 UTF-32 格式进行编码。
  • oem :使用 MS-DOS 和控制台程序的默认编码。
  • unicode :使用 little-endian 字节顺序以 UTF-16 格式进行编码。
  • utf7 :以 UTF-7 格式进行编码。
  • utf8 :以 UTF-8 格式进行编码。
  • utf8BOM :使用字节顺序标记 (BOM) 以 UTF-8 格式进行编码
  • utf8NoBOM :以 UTF-8 格式编码,不带字节顺序标记 (BOM)
  • utf32 :以 UTF-32 格式进行编码。
  • 从 PowerShell 6.2 开始, Encoding 参数还允许使用已注册代码页的数字 ID (如 -Encoding 1251 ) 或已注册代码页的字符串名称 () -Encoding "windows-1251" 。 有关详细信息,请参阅 Encoding.CodePage 的 .NET 文档。

    不再建议使用 UTF-7 *。 从 PowerShell 7.1 起,如果为 Encoding 参数指定 utf7 ,则会写入警告。

    Type: Encoding Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 Position:Named Default value:UTF8NoBOM Accept pipeline input:False Accept wildcard characters:False

    -Exclude

    指定此 cmdlet 在操作中排除的一个或多个项作为字符串数组。 此参数值使 Path 参数有效。 请输入路径元素或模式,例如 *.txt 。 允许使用通配符。 仅当命令包含项的内容(例如 C:\Windows\* ),其中通配符指定目录的内容 C:\Windows 时, Exclude 参数才有效。

    Type: String [ ] Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:True

    -Filter

    指定用于限定 Path 参数的筛选器。 FileSystem 提供程序是唯一支持使用筛选器的已安装 PowerShell 提供程序。 可以在 about_Wildcards 中找到 FileSystem 筛选器语言的语法。 筛选器比其他参数更高效,因为提供程序在 cmdlet 获取对象时应用它们,而不是在检索对象后让 PowerShell 筛选对象。

    Type: String Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:True

    -Force

    覆盖只读属性,从而允许你向只读文件中添加内容。 例如, Force 会替代只读属性,但它不会更改文件权限。

    Type: SwitchParameter Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Include

    指定此 cmdlet 将在操作中包含的一个项或多个项(作为一个字符串数组)。 此参数值使 Path 参数有效。 请输入路径元素或模式,例如 "*.txt" 。 允许使用通配符。 仅当命令包含项的内容(例如 C:\Windows\* ),其中通配符指定目录的内容 C:\Windows 时, Include 参数才有效。

    Type: String [ ] Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:True

    -LiteralPath

    指定一个或多个位置的路径。 LiteralPath 的值与键入时完全相同。 不会将任何字符解释为通配符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

    有关详细信息,请参阅 about_Quoting_Rules

    Type: String [ ] Aliases:PSPath, LP Position:Named Default value:None Accept pipeline input:True Accept wildcard characters:False

    -NoNewline

    指示此 cmdlet 不会向内容添加新行或回车符。

    输入对象的字符串表示形式连接在一起,形成输出。 在输出字符串之间不插入空格或换行符。 未在最后一个输出字符串之后添加换行符。

    Type: SwitchParameter Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -PassThru

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

    Type: SwitchParameter Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Path

    指定用于接收其他内容的项的路径。 允许使用通配符。 此路径必须是指向该项的路径,而不是容器的路径。 例如,必须指定一个或多个文件的路径,而不是目录的路径。 如果指定多个路径,请使用逗号分隔这些路径。

    Type: String [ ] Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:True

    -Stream

    此参数仅在 Windows 上可用。

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

    Stream 是 FileSystem 提供程序添加到 Add-Content 的动态参数。 此参数仅在文件系统驱动器中有效。

    可以使用 Add-Content cmdlet 更改任何备用数据流的内容,例如 Zone.Identifier 。 但是,若要取消安全检查(该安全检查可阻止从 Internet 下载的文件),则不建议使用此方法。 如果验证下载的文件是否安全,请使用 Unblock-File cmdlet。

    此参数是在 PowerShell 3.0 中引入的。 从 PowerShell 7.2 起, Add-Content 可以针对文件和目录上的备用数据流。

    Type: String Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Value

    指定要添加的内容。 键入带引号的字符串,例如 此数据仅供内部使用 ,或指定包含内容的对象,例如生成的 DateTime 对象 Get-Date

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

    Type: Object [ ] Position:1 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -WhatIf

    显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

    Type: SwitchParameter Aliases:wi Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    Object

    可以通过管道将值传递给 Set-Content

    PSCredential

    可以通过管道将凭据传递给 Set-Content

    默认情况下,此 cmdlet 不返回任何输出。

    String

    使用 PassThru 参数时,此 cmdlet 返回表示内容的 System.String 对象。

    PowerShell 包含以下别名 Add-Content

  • Windows:

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

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

  •