PowerShell 中的 LastExitCode
本文将重点关注 $?
和 $lastexitcode
命令及其在 PowerShell 中的区别。
每种脚本和编程语言都可以在其脚本中进行错误处理、错误捕获和管理。我们可以使用 $?
命令和 $lastexitcode
命令用于错误处理。
在 PowerShell 环境中使用 $?
命令
了解 $?
很重要在这里使用它之前的命令。根据不同命令的 PowerShell 定义,$?
命令可以用作错误处理程序。
根据最后执行的命令,它返回一个布尔值,True
或 False
。如果脚本中执行的最后一条命令成功,则返回 true
;否则,它返回 false
。
下面的执行代码显示了此命令的一次执行。
PS C:\Users> cmd /c "exit 5"
PS C:\Users> $?
False
PS C:\Users> cmd /c "exit 0"
PS C:\Users> $?
True
该命令示例使用带有代码 5
的 exit
和带有 0
的 exit
。带有代码 0
的退出
通常表示脚本成功执行和终止。
下图显示了 exit
命令的输出和 $?
完成的错误处理命令。
$lastexitcode
和 $?
是有区别的。但是,它也用于错误处理。
$LastExitCode
作为 PowerShell 中的错误处理程序
当命令是内部命令和命令是外部命令时,使用的错误处理有所不同。
当命令是外部的时,你将使用 $lastexitcode
。这是因为此命令仅适用于外部脚本和命令。
根据定义,$lastexitcode
显示最后一个基于 Windows 的程序的退出代码。
以下脚本在与上述相同的命令之后显示 $lastexitcode
。
PS C:\Users> $LastExitCode
0
PS C:\Users>
下图显示了相同的执行和输出。
由于在前一个命令中执行的最后一个命令给出了 true
作为输出,这将显示最后一个命令的成功执行。当前一个脚本为 true
时,$LastExitCode
输出将始终为 0。
但是,当它不成功时,它将是 1 或外部脚本返回的任何其他整数,因为 $LastExitCode
命令不是二进制的,不像 $?
命令。
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.