如何获取从powershell踢出的exe文件的$ lastexitcode

时间:2019-05-22 06:54:10

标签: powershell powershell-v4.0

  • 我正在创建一个 powershell脚本,该脚本可以调用另外两个 工作。

  • 我想调用exe文件并获取该exe文件的$LASTEXITCODE 在脚本中。

  

但是在我的脚本中,即使exe错误结尾,   $LASTEXITCODE始终设置为null

请任何人给我建议。

. myjob.exe -param1 $param1 -param2 $param
$LASTEXITCODE

当我使用CMD运行该exe文件时,设置了%ERRORLEVEL%的收集退出代码。

谢谢。

3 个答案:

答案 0 :(得分:0)

您不必费心$ LASTEXITCODE中除0以外的任何其他值。 像这样执行EXE后进行验证:

.\myjob.exe -param1 $param1 -param2 $param
If($LASTEXITCODE -eq 0)
{
    Write-Host "Execution Successful"
} 
else 
{
    Write-Host "Failure in Execution"
} 

注意:$LASTEXITCODE包含最后一个Win32可执行文件执行的退出代码,它等效于%ERRORLEVEL%

答案 1 :(得分:0)

如果您的可执行文件调用了其他进程,那么是的,这些错误将不会被传递,并且您总是会得到零。

这行吗?

. myjob.exe -param1 $param1 -param2 $param 2>&1
$LASTEXITCODE

答案 2 :(得分:0)

谢谢大家给我答案。 我无法找出为什么我的Powershell脚本无法获取exe文件的退出代码。但是我可以使用以下代码捕获退出代码:

$Process=(Start-Process -FilePath "myjob.exe" -ArgumentList @("-param1",$param1,"-param2",$param) -PassThru -Wait)
$Process.ExitCode

谢谢。