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

无法将输出存储在变量中,也无法使用powershell将结果导出到任何文件,powershell,Powershell,我编写了以下命令: $env:Path += "C:\Program Files (x86)\Java\jre6\bin" & "C:\Program Files (x86)\Java\jre6\bin\java" -version 我试图将第二行的输出存储在变量中,但无法这样做。还试图导出某些文件中的输出,但也不起作用。请协助。java.exe可能正在将版本输出写入stderr 您可以使用流重定向操作符(&)将错误流(2)合并到标准输出流(1)中,如下所示: PowerShell将尽

我编写了以下命令:

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

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

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

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

PowerShell将尽力提供帮助,并将错误输出包装在
ErrorRecord
中。因为我们只需要纯文本输出,所以从它包装的
异常
中获取
消息
值:

$jversion = (& "C:\program files(x86)\java\jre6\bin\java" -version 2>&1).Exception.Message
$jversion
现在将包含一个或多个字符串作为
java.exe


有关更多信息,请参见
java.exe
可能正在将版本输出写入
stderr
。请尝试
$version=(&“C:\ProgramFiles(x86)\java\jre6\bin\java”-version 2>&1)。异常。消息
谢谢Mathias R.Jessen,您的解决方案对我有效。我已添加了正确的答案
$jversion = (& "C:\program files(x86)\java\jre6\bin\java" -version 2>&1).Exception.Message