使用 PowerShell 將輸出匯出到檔案

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  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