可以使用 Out-File cmdlet 将输出发送到文件而不是控制台窗口。 下面的命令行将进程列表发送到文件 C:/temp/process.txt:
Get-Process | Out-File -FilePath C:/temp/process.txt
如果你习惯使用传统的输出重定向,则使用 Out-File cmdlet 可能与你的预期结果有所不同。 若要了解其行为,必须知道运行 Out-File cmdlet 的上下文。
默认情况下,Out-File cmdlet 创建 Unicode 文件。 从长远来看,这是最佳默认操作,但是它意味着应创建 ASCII 文件的工具将无法使用默认的输出格式正常运作。 可以使用 Encoding 参数将默认输出格式更改为 ASCII:
Get-Process | Out-File -FilePath C:/temp/process.txt -Encoding ASCII
Out-File 将文件内容格式化为与控制台输出类似的形式。 这会导致输出被截断,大多数情况下正如它在控制台窗口中一样。 例如,如果运行下面的命令:
Get-Command | Out-File -FilePath c:/temp/output.txt
输出将如下所示:
CommandType Name Definition
----------- ---- ----------
Cmdlet Add-Content Add-Content [-Path] <String[...
Cmdlet Add-History Add-History [[-InputObject] ...
...
若要使不会强制换行的输出与屏幕宽度匹配,可以使用 Width 参数来指定行宽。 因为 Width 是一个 32 位整数参数,因此其最大值可以是 2147483647
。 键入以下内容以将行宽设置为此最大值:
Get-Command | Out-File -FilePath c:/temp/output.txt -Width 2147483647
想要保存原本显示在控制台中的输出时,使用 Out-File cmdlet 最有用。 若要更好地控制输出格式,需要更高级的工具。 我们将在下一章中查看这些内容以及有关对象操作的一些详细信息。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264559.html