2

我有一个定义的 powershell 脚本,$ErrorActionPreference = "Stop"
但我也有一个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
}
...

我怎样才能防止启动过程使整个脚本失败。

4

1 回答 1

3

Start-Process不更新$LASTEXITCODEStart-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
}
于 2015-06-12T17:03:09.520 回答