gpt4 book ai didi

powershell - 当使用调用运算符的非零退出代码时,为什么 PowerShell 脚本不会结束?

转载 作者:行者123 更新时间:2023-12-04 06:53:52 25 4
gpt4 key购买 nike

当使用调用运算符和 $ErrorActionPerference = "Stop" 时使用非零退出代码时,为什么 PowerShell 脚本不会结束?

使用以下示例,我得到结果 managed to get here with exit code 1 :

$ErrorActionPreference = "Stop"

& cmd.exe /c "exit 1"

Write-Host "managed to get here with exit code $LASTEXITCODE"

Microsoft documentation for the call operator不讨论使用调用运算符时会发生什么,它只说明以下内容:

Runs a command, script, or script block. The call operator, also known as the "invocation operator," lets you run commands that are stored in variables and represented by strings. Because the call operator does not parse the command, it cannot interpret command parameters.



此外,如果这是预期的行为,是否还有其他方法可以让调用运算符导致错误而不是让它继续?

最佳答案

返回码不是 PowerShell 错误 - 它与任何其他变量的显示方式相同。

然后您需要对变量和 throw 采取行动使用 PowerShell 为您编写脚本的错误将其视为终止错误:

$ErrorActionPreference = "Stop"

& cmd.exe /c "exit 1"

if ($LASTEXITCODE -ne 0) { throw "Exit code is $LASTEXITCODE" }

关于powershell - 当使用调用运算符的非零退出代码时,为什么 PowerShell 脚本不会结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com