2017-10-13 49 views
1

我使用Invoke-Expression从运行PowerShell中的jar:PowerShell中调用表达java程序获取状态

$line="c:\temp\my file.txt" 
$cmd="java -jar C:\temp\post.jar `"" + $line + "`"" 
invoke-expression $cmd 

如果我测试$?只会给我Invoke-Expression的地位,这将永远是一个成功的可以找到java可执行文件和post.jar。

此外,我想直接运行java程序并测试$?,但有时文件名可能非常复杂,有时我会提供额外的选项。

如何获取post.jar程序的运行状态?

谢谢。

+0

请勿使用“Invoke-Expression”。在这种情况下没有必要。 – PetSerAl

回答

0

你可以尝试通过检查进程的退出代码:

$p = Start-Process java -ArgumentList '-jar C:\temp\post.jar',$file -Wait -PassThru 
$p.ExitCode 

基于-PassThru您会收到System.Diagnostics.Process -object应包括JAR的退出代码。欲了解更多信息,请参阅Start-Process cmdlet description

希望有所帮助。