我正在创建一个 powershell脚本,该脚本可以调用另外两个 工作。
我想调用exe
文件并获取该exe
文件的$LASTEXITCODE
在脚本中。
但是在我的脚本中,即使
exe
以错误结尾,$LASTEXITCODE
始终设置为null
。
请任何人给我建议。
. myjob.exe -param1 $param1 -param2 $param
$LASTEXITCODE
当我使用CMD运行该exe
文件时,设置了%ERRORLEVEL%
的收集退出代码。
谢谢。
答案 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
谢谢。