Powershell - 如何使用输出放置主机并设置变量

时间:2014-10-30 01:10:57

标签: powershell

我有以下powershell代码段:

$output = & "$backup.exe" @("/remoteShare", $remoteShare)  2>&1

这设置$ output但问题是它不会将backup.exe的输出写入命令控制台窗口。作为我尝试的解决方案:

$output = & "$backup.exe" @("/remoteShare", $remoteShare)  2>&1 | out-host

此解决方案输出到命令控制台窗口,但$ output为null。

tl; dr如何从PS运行exe并将该exe的输出显示到命令控制台并将输出保存在变量中?

2 个答案:

答案 0 :(得分:3)

$output = & "$backup.exe" @("/remoteShare", $remoteShare)  2>&1
$output

或:

& "$backup.exe" @("/remoteShare", $remoteShare)  2>&1 | Tee-Object -Variable output

Tee-Object

答案 1 :(得分:1)

如果在parens中包装使用间接的表达式(使用=运算符将结果赋值给变量),它将设置变量并输出结果:

($output = & "$backup.exe" @("/remoteShare", $remoteShare)  2>&1)

如果您明确希望它转到控制台,您可以将其传递给out-host:

($output = & "$backup.exe" @("/remoteShare", $remoteShare)  2>&1) | out-host