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.