忽略特定行的 powershell 脚本失败
Ignoring powershell script failure for a particular line
我有一个定义 $ErrorActionPreference = "Stop"
的 powershell 脚本
但我也有一个 start-process
调用,目标是 returns 一个非标准的成功退出代码(1 而不是 0)的进程。
因此,即使启动过程正常,脚本也会失败。
我试图在 start-process
调用中附加 -ErrorAction "Continue"
参数,但它没有解决问题。
有问题的行如下所示:
$ErrorActionPreference = "Stop"
...
start-process "binary.exe" -Wait -ErrorAction "Continue"
if ($LastExitCode -ne 1)
{
echo "The executable failed to execute properly."
exit -1
}
...
如何防止启动进程使整个脚本失败。
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
}
我有一个定义 $ErrorActionPreference = "Stop"
的 powershell 脚本
但我也有一个 start-process
调用,目标是 returns 一个非标准的成功退出代码(1 而不是 0)的进程。
因此,即使启动过程正常,脚本也会失败。
我试图在 start-process
调用中附加 -ErrorAction "Continue"
参数,但它没有解决问题。
有问题的行如下所示:
$ErrorActionPreference = "Stop"
...
start-process "binary.exe" -Wait -ErrorAction "Continue"
if ($LastExitCode -ne 1)
{
echo "The executable failed to execute properly."
exit -1
}
...
如何防止启动进程使整个脚本失败。
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
}