PowerShell 中的 LastExitCode

Migel Hewage Nimesha 2023年1月30日 2022年5月16日
  1. 在 PowerShell 环境中使用 $? 命令
  2. $LastExitCode 作为 PowerShell 中的错误处理程序
PowerShell 中的 LastExitCode

本文将重点关注 $?$lastexitcode 命令及其在 PowerShell 中的区别。

每种脚本和编程语言都可以在其脚本中进行错误处理、错误捕获和管理。我们可以使用 $? 命令和 $lastexitcode 命令用于错误处理。

在 PowerShell 环境中使用 $? 命令

了解 $? 很重要在这里使用它之前的命令。根据不同命令的 PowerShell 定义,$? 命令可以用作错误处理程序。

根据最后执行的命令,它返回一个布尔值,TrueFalse。如果脚本中执行的最后一条命令成功,则返回 true;否则,它返回 false

下面的执行代码显示了此命令的一次执行。

PS C:\Users> cmd /c "exit 5"
PS C:\Users> $?
False
PS C:\Users> cmd /c "exit 0"
PS C:\Users> $?
True

该命令示例使用带有代码 5exit 和带有 0exit。带有代码 0退出通常表示脚本成功执行和终止。

下图显示了 exit 命令的输出和 $? 完成的错误处理命令。

powershell 错误处理命令

$lastexitcode$? 是有区别的。但是,它也用于错误处理。

$LastExitCode 作为 PowerShell 中的错误处理程序

当命令是内部命令和命令是外部命令时,使用的错误处理有所不同。

当命令是外部的时,你将使用 $lastexitcode。这是因为此命令仅适用于外部脚本和命令。

根据定义,$lastexitcode 显示最后一个基于 Windows 的程序的退出代码。

以下脚本在与上述相同的命令之后显示 $lastexitcode

PS C:\Users> $LastExitCode
0
PS C:\Users>

下图显示了相同的执行和输出。

lastexitcode 错误处理程序

由于在前一个命令中执行的最后一个命令给出了 true 作为输出,这将显示最后一个命令的成功执行。当前一个脚本为 true 时,$LastExitCode 输出将始终为 0。

但是,当它不成功时,它将是 1 或外部脚本返回的任何其他整数,因为 $LastExitCode 命令不是二进制的,不像 $? 命令。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.