PowerShell Add-Content
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍 PowerShell 中的 Add-Content cmdlet。此 cmdlet 将内容追加到文件,而不会覆盖现有内容。它对于日志记录和数据收集非常有用。
Add-Content 基础知识
Add-Content cmdlet 将内容添加到指定的文件。与 Set-Content 不同,它会保留现有内容。它可以添加文本、数组或文件内容。如果文件不存在,该 cmdlet 会创建它。它支持各种编码,并且可以处理多个文件。
Add-Content 的基本用法
使用 Add-Content 的最简单方法是指定文件路径和内容字符串。这会将文本追加到指定的文件。如果文件不存在,它将被创建。默认编码为 UTF-8。
Add-Content -Path "log.txt" -Value "New log entry"
此命令将“New log entry”追加到 log.txt。如果 log.txt 不存在,它将被创建。每次执行都会在文件中添加新的一行。
追加多行
您可以通过传递字符串数组来追加多行。每个数组元素都会成为文件中的单独一行。这对于添加结构化数据非常有用。-Value 参数同时接受单个值和多个值。
$lines = @("First line", "Second line", "Third line")
Add-Content -Path "data.txt" -Value $lines
此命令将三行添加到 data.txt。数组中的每个字符串都成为单独的一行。文件将按指定顺序包含这些行。
PS C:\> Get-Content data.txt First line Second line Third line
使用不同编码追加
您可以使用 -Encoding 参数指定文件编码。这对于与不同系统的兼容性很重要。常见编码包括 UTF8、ASCII 和 Unicode。PowerShell 6+ 的默认值为 UTF8NoBOM。
Add-Content -Path "output.txt" -Value "Text with special chars: äöü" -Encoding UTF8
此命令使用 UTF-8 编码追加包含特殊字符的文本。编码确保了非 ASCII 字符的正确处理。请根据您的要求选择编码。
追加到多个文件
Add-Content 可以同时追加到多个文件。提供多个路径或使用通配符。这对于批量操作非常高效。所有指定的文件都会接收到相同的内容。
Add-Content -Path "file1.txt", "file2.txt" -Value "Common content"
此命令将“Common content”追加到 file1.txt 和 file2.txt。如果其中任何一个文件不存在,它将被创建。也可以使用 *.log 等通配符。
使用管道输入
Add-Content 可以接受来自管道的输入。这允许动态生成内容。输入可以来自其他 cmdlet 或函数。这对于处理和记录数据非常强大。
Get-Date | Add-Content -Path "timestamps.log"
此命令将当前日期和时间追加到 timestamps.log。Get-Date 的输出被直接通过管道传递给 Add-Content。这种模式在日志记录场景中很常见。
追加时进行确认
为了安全起见,您可以添加确认提示。-Confirm 参数会在写入前提示。这可以防止意外修改。在处理重要文件时非常有用。
Add-Content -Path "important.txt" -Value "Critical data" -Confirm
此命令在追加前显示确认提示。您必须通过输入“Y”来确认操作。提示会显示目标文件路径。
使用 -NoNewline 参数
默认情况下,Add-Content 在每个值后添加一个换行符。-NoNewline 参数会阻止此行为。当您需要在不换行的情况下追加内容时,此参数非常有用。多次追加将位于同一行。
Add-Content -Path "output.txt" -Value "Start: " -NoNewline Add-Content -Path "output.txt" -Value "Continued text"
第一个命令在不换行的情况下添加“Start: ”。第二个命令在同一行追加“Continued text”。文件将包含“Start: Continued text”。
来源
在本文中,我们介绍了 PowerShell 中的 Add-Content cmdlet。
作者
列出 所有 PowerShell 教程。