PowerShell Set-Content | PowerShell 写入文件

17 Mar 2025 | 4 分钟阅读

PowerShell 的 Set-Content cmdlet 将新内容写入文件,或替换文件中的现有内容。 它与 Add-content cmdlet 不同,后者将内容追加到文件。 要将内容发送到 Set-Content cmdlet,我们可以在命令行上使用 -Value 参数,或者我们可以通过管道发送内容。 sc 是此 cmdlet 的别名。

语法


参数

-Path

-Path 参数用于指定接收内容的项的路径。 接受通配符。

-LiteralPath

-LiteralPath 参数用于指定到一个或多个位置的路径。 如果路径包含转义字符,请将其括在单引号中。 单引号告诉 Windows PowerShell 不应将任何字符解释为转义序列。 cmdlet 中没有任何字符被解释为通配符。

-Force

-Force 参数用于强制 cmdlet 设置只读文件的内容。 它不覆盖安全权限。

-WhatIf

-WhatIf 参数用于显示如果 cmdlet 执行会发生什么。 cmdlet 不会执行。

-Confirm

-confirm 参数用于在运行 cmdlet 之前提示确认。

-Value

-Value 参数用于指定项目的新内容。

-PassThru

-PassThru 参数用于返回一个代表内容的对象。 默认情况下,它不生成任何输出。

-Filter

-Filter 参数用于指定一个过滤器来限定 -Path 参数。 FileSystem 提供程序是唯一支持使用过滤器的 PowerShell 提供程序。 此参数效率更高,因为提供程序在 cmdlet 获取对象时应用过滤器,而不是在访问对象后由 Powershell 过滤对象。

-Include

此 cmdlet 在操作中包含的项目指定为字符串数组。 -Include 参数的值限定了 -Path 参数。输入一个模式或一个路径元素,例如 *.txt。接受通配符。-Exclude 参数仅在 cmdlet 包含项目的内容时有效,例如 C:\*,通配符“*”用于指定 C: 目录的内容。

-Exclude

此 cmdlet 在操作中排除的项目指定为字符串数组。 -Exclude 参数的值限定了 -Path 参数。输入一个模式或一个路径元素,例如 *.txt。接受通配符。-Exclude 参数仅在 cmdlet 包含项目的内容时有效,例如 C:\*,通配符“*”用于指定 C: 目录的内容。

-NoNewLine

输入字符串之间没有插入换行符或空格,并且在最后一个输出字符串之后也没有添加换行符。

-Encoding

-Encoding 参数用于指定目标文件的编码类型。 其默认值为 UTF8NoBOM。 它是 FileSystem 提供程序添加到 Set-Content cmdlet 的动态参数。 它仅在文件系统的驱动器中有效。

此参数的可接受值为:

  • ASCII: 它使用 ASCII(7 位)字符集的编码。
  • Unicode: 它使用小端字节顺序以 UTF-16 格式编码。
  • UTF7: 它以 UTF-7 格式编码。
  • UTF8: 它以 UTF-8 格式编码。
  • BigEndianUnicode: 它使用大端字节顺序以 UTF-16 格式编码。
  • OEM: 它使用 MS-DOS 和控制台程序的默认编码。
  • UTF8NoBOM: 它以不带字节顺序标记 (BOM) 的 UTF-8 格式编码
  • UTF32: 它以 UTF-32 格式编码。
  • UTF8BOM: 它以带字节顺序标记 (BOM) 的 UTF-8 格式编码

-Stream

-Stream 参数用于指定内容的备用数据流。 如果该流不存在,则此 cmdlet 会创建它。 不接受通配符。

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

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

示例

示例 1:创建一个新文件并写入内容

PowerShell Set-Content

此示例中的第一个 cmdlet 创建一个新文件并将 Windows 操作系统写入该文件。 它使用 -Path-Value 参数在当前目录中创建一个名为 pw.txt 的新文件。

此示例中的第二个 cmdlet 使用 Get-content cmdlet 在 PowerShell 控制台中显示 pw.txt 文件的内容。

示例 2:替换目录中现有文件的内容。

PowerShell Set-Content

此示例中的 cmdlet 替换当前目录中文件的内容。 此 cmdlet 使用 -Value 参数,该参数提供文本字符串 Hello PowerShell..!! 来替换文件中的现有内容。

示例 3:创建一个新文件并将系统日期和时间写入该文件

PowerShell Set-Content

此示例中的第一个 cmdlet 创建一个新文件并将系统的当前日期和时间写入当前目录中的文件。

Set-content cmdlet 使用 -Path-Value 参数在当前目录中创建一个名为 dt.txt 的新文件。 -value 参数使用 Get-date cmdlet 获取当前日期和时间。

此示例中的第二个 cmdlet 使用 Get-Content cmdlet 在 PowerShell 控制台中显示 dt.txt 文件的内容。