【发布时间】:2021-05-13 01:18:47
【问题描述】:
在 PowerShell 中,我无法将错误流输出写入变量。
在不将输出保存到变量的情况下运行命令将导致任何流的输出可见,但是,我需要将输出写入变量。
& terraform $action $arguments
最初我开始使用它。但是,只有成功流被写入变量(如预期的那样)。
$res = & terraform $action $arguments
于是我咨询了docs for about_Redirection,但问题是,当我将错误流(或所有流)重定向到成功流时,我仍然只看到写入变量的成功流。我做了几次尝试,都失败了。
$res = & terraform $action $arguments 2>&1
$res = & terraform $action $arguments *>&1
$res = & terraform $action $arguments *>&1 | ForEach-Object { $_.ToString() }
但是,如果我将错误流重定向到文件,则流会按预期写入。
$res = & terraform $action $arguments 2>> terraform-errors.log
如何将所有流的输出写入变量?
【问题讨论】:
-
& { & terraform $action $arguments }*>&1工作吗? -
遗憾的是它没有。目前我正在使用
& terraform $action $arguments *>&1 | ForEach-Object { Write-Host $_ },并且我进行了一些更改,因此我不一定需要变量中的输出。不过,如果您有任何其他想法,我的偏好仍然是将输出存储在变量中。
标签: powershell redirectstandardoutput