如何在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**。
广告