如何在PowerShell中使用ErrorActionPreference变量?


PowerShell中的**ErrorActionPreference**变量用于通过将非终止错误转换为终止错误来控制非终止错误。错误处理取决于您为**$ErrorActionPreference**变量分配的值。

值如下所示。

  • **Continue** − 这是变量的默认值,当发生错误时,错误将显示在PowerShell控制台中,脚本将继续执行。

Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
Write-Host "Hello World"

输出

Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
Write-Host "Hello World"
Get-WmiObject : The RPC server is unavailable.
At line:2 char:1
+ Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject],
COMException
+ FullyQualifiedErrorId :
GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObj
ectCommand
Hello World
  • **Stop** − 错误不会显示在控制台中,并且管道执行将停止。在下面的示例中,将没有输出。

$ErrorActionPreference = "Stop"
Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
Write-Host "Hello World"
  • **SilentlyContinue** − 错误输出不会显示,脚本将执行管道中的下一条命令。

$ErrorActionPreference = "SilentlyContinue"
Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
Write-Host "`nHello World" -BackgroundColor DarkGreen

输出 −

PS C:\WINDOWS\system32>> $ErrorActionPreference = "SilentlyContinue" Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist Write-Host "`nHello World" -BackgroundColor DarkGreen

Hello World
  • **Inquire** − 如果发生错误,它将等待用户提示并询问是否继续。将显示错误。

$ErrorActionPreference = "Inquire"
Get-WmiObject -Class Win32_Logicaldisk -ComputerName Nonexist
Write-Host "`nHello World" -BackgroundColor DarkGreen

输出

如果您按下**“是/全部是”**,则将显示错误输出,而**“停止命令/暂停”**不会显示错误。

  • **Suspend** − 此值用于PowerShell工作流中,用于暂停工作流以进行调查,然后恢复。

关闭PowerShell会话时,**$ErrorActionPreference**的值将设置为默认值,即**Continue**。

更新于:2020年5月27日

5K+ 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告