我写了以下命令:
$env:Path += "C:\Program Files (x86)\Java\jre6\bin"
& "C:\Program Files (x86)\Java\jre6\bin\java" -version
我正在尝试将第二行的输出存储在变量中,但无法这样做。还尝试在某些文件中导出输出,这也没有用。请协助。
答案 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