PowerShell 中的 LastExitCode

Migel Hewage Nimesha 2024年2月15日
  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.