无法将输出存储在变量中,也无法使用PowerShell将结果导出到任何文件

时间:2017-07-17 13:03:23

标签: powershell

我写了以下命令:

$env:Path += "C:\Program Files (x86)\Java\jre6\bin"
& "C:\Program Files (x86)\Java\jre6\bin\java" -version

我正在尝试将第二行的输出存储在变量中,但无法这样做。还尝试在某些文件中导出输出,这也没有用。请协助。

1 个答案:

答案 0 :(得分:0)

java.exe可能正在将版本输出写入stderr

您可以使用流重定向运算符(2)将错误流(1)合并到标准输出流(>&)中,如下所示:

& "C:\program files(x86)\java\jre6\bin\java" -version 2>&1

PowerShell将尝试提供帮助并将错误输出包装在ErrorRecord中。由于我们只需要明文输出,因此请抓取Message所包含的Exception值:

$jversion = (& "C:\program files(x86)\java\jre6\bin\java" -version 2>&1).Exception.Message

$jversion现在将包含一个或多个字符串作为java.exe

的输出

有关详细信息,请参阅about_Redirection help file