忽略特定行的powershell脚本失败

时间:2015-06-12 15:03:58

标签: powershell error-handling exit-code start-process

我有一个定义$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
}
...

如何阻止启动过程使整个脚本失败。

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
}