我有以下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的输出显示到命令控制台并将输出保存在变量中?
答案 0 :(得分:3)
$output = & "$backup.exe" @("/remoteShare", $remoteShare) 2>&1
$output
或:
& "$backup.exe" @("/remoteShare", $remoteShare) 2>&1 | Tee-Object -Variable output
答案 1 :(得分:1)
如果在parens中包装使用间接的表达式(使用=运算符将结果赋值给变量),它将设置变量并输出结果:
($output = & "$backup.exe" @("/remoteShare", $remoteShare) 2>&1)
如果您明确希望它转到控制台,您可以将其传递给out-host:
($output = & "$backup.exe" @("/remoteShare", $remoteShare) 2>&1) | out-host