是否可以将写命令的输出保存在文件中? (API 和 Powershell)

Is it possible to save the output from a write command in a file? (API and Powershell)

我刚开始使用 Powershell,已经遇到了问题。 我正在使用来自 OpenWeathermap (https://openweathermap.org/) 的 API 来创建类似天气机器人的东西。

我正在使用 API 中的这个函数:

Write-WeatherCurrent -City $place -ApiKey $ApiKey -Units metric

输出是这样的(如果我填充变量): 伦敦 10.2°C(☁️ 少云)

所以我希望将此输出保存在文件中。我已经尝试使用命令 Out-File 和 >>。但它只在终端输出,文件为空。我不确定,但是否是因为“写入”-WeatherCurrent?

如果有人能帮助我,我会很高兴:D

谢谢

Write-WeatherCurrent uses Write-Host 将输出直接写入主机控制台缓冲区。

如果您使用的是 PowerShell 5.0 或更高版本,您可以使用 InformationVariable 公共参数将 Write-Host 输出捕获到一个变量:

Write-WeatherCurrent -City $place -ApiKey $ApiKey -Units metric -InformationVariable weatherInfo

$weatherInfo 现在包含字符串输出,您可以将其写入文件:

$weatherInfo |Out-File path\to\file.txt 

如果目标命令不公开公共参数,另一种选择是将 Information 流合并到标准输出流中:

$weatherInfo = Write-WeatherCurrent -City $place -ApiKey $ApiKey -Units metric 6>&1 # "stream 6" is the Information stream