我有一个定义$ErrorActionPreference = "Stop"
的powershell脚本
但我也有一个start-process
调用,它针对的是一个成功返回非标准退出代码的进程(1而不是0)。
因此,即使启动过程正常,脚本也会失败。
我尝试在-ErrorAction "Continue"
调用中附加start-process
参数,但它没有解决问题。
有问题的行看起来像这样:
$ErrorActionPreference = "Stop"
...
start-process "binary.exe" -Wait -ErrorAction "Continue"
if ($LastExitCode -ne 1)
{
echo "The executable failed to execute properly."
exit -1
}
...
如何阻止启动过程使整个脚本失败。
答案 0 :(得分:3)
Start-Process
未更新$LASTEXITCODE
。使用Start-Process
参数运行-PassThru
以获取流程对象,并评估该对象的ExitCode
属性:
$ErrorActionPreference = "Stop"
...
$p = Start-Process "binary.exe" -Wait -PassThru
if ($p.ExitCode -ne 1) {
echo "The executable failed to execute properly."
exit -1
}