使用 PowerShell 将输出导出到文件

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell 中的 Out-File 命令简介
  2. 使用 -append 参数附加到 PowerShell 中的文件
  3. 在 PowerShell 中更改输出数据
使用 PowerShell 将输出导出到文件

多种脚本语言具有可让你将数据导出到文件的功能或方法。即使在早期的 MS-DOS 时代,传统的重定向运算符 (>) 也可以方便地做到这一点。

本文将讨论如何将输出数据导出到文件、将数据添加到现有文件以及使用 PowerShell 操作输出。

PowerShell 中的 Out-File 命令简介

假设你有一个脚本,它返回你计算机上所有 Windows 服务的列表。当我们运行 Get-Service 时,你将收到你可能期望在控制台上的所有对象。

但也许我们想将该输出保存到文本文件中。Out-File 命令是一个很好的方法。

我们可以通过管道运算符管道几乎任何东西来使用 Out-File。下面,我们可以看到脚本将 Get-Service 的输出发送到 cmdlet,它创建了一个名为 Services.txt 的文本文件,其中包含在控制台上的相同显示。

示例代码:

Get-Service | Out-File -FilePath C:\PS\Services.txt
Get-Content C:\PS\Services.txt

输出:

Status   Name               DisplayName

Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
<SNIP>

使用 -append 参数附加到 PowerShell 中的文件

默认情况下,Out-File 命令会覆盖通过 -FilePath 参数提供的文本文件中的任何内容。但是,我们可以使用 -Append 参数覆盖此行为。

也许我们正在将控制台输出累积到一个文件中,并希望将文本附加到文件而不是覆盖。 -Append 参数是你最好的朋友。

如果我们不使用 Out-File -Append 参数,C:\PS\File.txt 内容将被覆盖。但是,只要我们添加 -Append 参数,它就会将输出附加到末尾。

示例代码:

'firststring' | Out-File -FilePath C:\PS\File.txt
Get-Content -Path C:\PS\File.txt

'secondstring' | Out-File -FilePath C:\PS\File.txt -Append
Get-Content C:\PS\File.txt

输出:

firststring
firststring
secondstring

在 PowerShell 中更改输出数据

默认情况下,此 cmdlet 将尝试复制控制台上显示的内容,但有一些方法可以对其进行操作。例如,cmdlet 有一个 -NoNewLine 参数,用于删除所有换行符。

示例代码:

Get-Service | Out-File -FilePath C:\PS\Services.txt -NoNewline
Get-Content C:\PS\Services.txt

输出:

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application La

或者,我们可以使用 -Width 参数以特定字符数截断每一行的文本。

示例代码:

Get-Service | Out-File -FilePath C:\PS\Services.txt -Width 30
Get-Content C:\PS\Services.txt

输出:

Status   Name               DisplayName
------   -----              -----------
Stopped  AJRouter           Al
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell Export