在PowerShell中$ error变量的用途是什么?

PowerShell中的错误变量用于查看当前PowerShell会话中生成的错误。我们可以说$Error变量是存储所有错误的容器,并且最新的错误将首先显示。对于下面的示例,我们将$Errorview设置为Category视图,以最小化错误显示内容。默认情况下,$ErrorView普通视图

$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

这里,我们编写了一个错误的命令和一个错误的输入,因此让我们看看$错误变量包含什么。

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