Powershell脚本输出到变量 - 捕获写主机输出

时间:2018-03-03 17:29:22

标签: powershell io-redirection

使用此脚本:https://github.com/byterogues/powershell-bittrex-api 我从另一个剧本打电话。

e.g。

$order = .\bittrex-api.ps1 -action buylimit -market BTC-TX -quantity 1 -rate 0.00011300

bittrex-api.ps1捕获错误并在屏幕上显示

BITTREX错误:API查询返回错误。 错误消息:MIN_TRADE_REQUIREMENT_NOT_MET

如何将bittrex-api.ps1的输出捕获到变量中,以便在基本脚本中使用此变量?

1 个答案:

答案 0 :(得分:0)

补充Frode F.'s helpful answer,明智地建议修改脚本以使用Write-Error进行错误报告:

如果修改代码不是一个选项,并且您正在使用 PSv5 + ,那么 可以捕获Write-Host输出 ,因为PSv5 Write-Host写入新引入的信息输出流(主要是Write-Information设计写入):

PowerShell的输出流已编号,信息流的编号为6,因此输出重定向表达式 6>&1将信息流重定向到成功输出流,其编号为1,允许在变量中进行常规捕获,如下例所示:

# PSv5+

$captured = & { Write-Host 'write-host output' } 6>&1

$captured # output what was captured -> 'write-host output'

要详细了解PowerShell的输出流和重定向,请运行Get-Help about_Redirection