如果你正在尋找一個能夠將輸出存儲到文本文件的 PowerShell 命令,那你真是幸運。你即將學會如何使用 PowerShell 的 Out-File
命令,以及它流行的 Out-File -Append
參數!
Out-File 如何工作?
這個 PowerShell 命令非常簡單;它的唯一目的是將接收到的輸出存儲在文本文件中。
它被設計來取代 標準輸出重定向 運算符(>
)。即使在 DOS 時代,我們也可以將輸出重定向到文件中。這個命令是 PowerShell 的方式來做這件事。
Out-File
命令通常用於 PowerShell 管道的末尾。它的唯一目的是將原始輸出直接發送到文本文件中,不做其他處理。只有極少的方法可以調整輸出的寫入方式。
將輸出發送到文件
假設你有一個腳本,返回了計算機上所有 Windows 服務的列表。當你運行 Get-Service
時,你會在控制台上收到所有你可能期望的對象。
但也許你想將該輸出保存到文本文件中。Out-File
命令是做這件事的絕佳方式。你可以通過將幾乎任何東西通過管道傳遞給它來使用它。
你可以在下面看到,Get-Service
的输出被发送到创建了一个名为Services.txt的文本文件的 cmdlet 中,该文件包含你在控制台上看到的确切显示。
追加到文件
默认情况下,它会覆盖通过FilePath
参数提供的文本文件中的任何内容。但是,你可以使用Append
参数覆盖此行为。
也许你正在累积控制台输出到一个文件,并且想要追加文本而不是覆盖。Append
参数是你的好朋友。
通过使用Out-File -Append
参数,你可以看到,注意如果你不使用它,C:\File.txt会被覆盖。但是,一旦你加上Append
参数,它会将输出附加到末尾。
更改输出
默认情况下,此 cmdlet 将尝试复制在控制台上显示的内容,但有一些方法可以操纵它。例如,cmdlet 有一个NoNewLine
参数,仅删除所有换行字符。
或者,你还可以使用Width
参数在每行的特定字符数处截断文本。
结论

在实际应用中,此 cmdlet 能够正常工作,但有更好的方法来将输出存储到文件中。
此 cmdlet 提供了很少的选项来操纵输出。它只是将输出保存为在控制台中显示的内容,类似于将所有内容直接写入文本文件的 PowerShell 记录。
Add-Content
或Set-Content
cmdlets會始終具有更多的靈活性,但如果您需要快速將PowerShell輸出寫入文件,Out-File
是一種不錯的方式。