PowerShell 中 $error 變數有什麼作用?


PowerShell 中的 Error 變數用於檢視當前 PowerShell 會話中生成的錯誤。我們可以說 $Error 變數是儲存所有錯誤的容器,最新的錯誤將首先顯示。對於下面的示例,我們將 $ErrorView 設定為 Category 檢視以最小化錯誤顯示內容。預設情況下,$ErrorViewNormal 檢視

$ErrorView = "Categoryview"

現在我們將看到 $error 變數的示例,

PS C:\WINDOWS\system32> asdds
ObjectNotFound: (asdds:String) [], CommandNotFoundException
PS C:\WINDOWS\system32> Get-process asddsd
ObjectNotFound: (asddsd:String) [Get-Process], ProcessCommandException

這裡,我們編寫了一個錯誤的命令和一個錯誤的輸入,所以讓我們看看 $error 變數包含什麼。

PS C:\WINDOWS\system32> $error
ObjectNotFound: (asddsd:String) [Get-Process], ProcessCommandException
ObjectNotFound: (asdds:String) [], CommandNotFoundException

在上面的輸出中,最後一個錯誤將首先顯示,依此類推。$Error 變數現在已成為一個數組。您可以像使用普通陣列一樣獲取各個輸出。

PS C:\WINDOWS\system32> $error[0]
ObjectNotFound: (asddsd:String) [Get-Process], ProcessCommandException
PS C:\WINDOWS\system32> $error[1] ObjectNotFound: (asdds:String) [], CommandNotFoundException

要獲取生成的錯誤數量,

PS C:\WINDOWS\system32> $error.Count
2

要檢查錯誤容量,您可以執行以下命令。

PS C:\WINDOWS\system32> $error.Capacity
4

當儲存錯誤的容量達到 4 時,此變數會自動將其容量再次增加 4,因此總容量變為 8。因此,每次錯誤變數達到其容量時,它都會將其容量增加 4。

例如,

我們在這裡已經建立了 4 個錯誤,

PS C:\WINDOWS\system32> $error
ObjectNotFound: (221dsd:String) [], CommandNotFoundException
ObjectNotFound: (7sdse:String) [], CommandNotFoundException
ObjectNotFound: (asddsd:String) [Get-Process], ProcessCommandException
ObjectNotFound: (asdds:String) [], CommandNotFoundException

當您再新增一個錯誤計數時,

PS C:\WINDOWS\system32> 5look
ObjectNotFound: (5look:String) [], CommandNotFoundException

現在檢查容量,

PS C:\WINDOWS\system32> $error.Capacity
8

以及輸出,

PS C:\WINDOWS\system32> $error
ObjectNotFound: (5look:String) [], CommandNotFoundException
ObjectNotFound: (221dsd:String) [], CommandNotFoundException
ObjectNotFound: (7sdse:String) [], CommandNotFoundException
ObjectNotFound: (asddsd:String) [Get-Process], ProcessCommandException
ObjectNotFound: (asdds:String) [], CommandNotFoundException

所以問題是,這個錯誤變數容量的閾值是多少?要檢查它,您需要使用命令 $MaximumErrorCount

PS C:\WINDOWS\system32> $MaximumErrorCount
256

這裡,最大錯誤計數的限制為 256

更新於: 2020-05-27

3K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告