متغیر ErrorActionPreference در PowerShell برای کنترل خطاهای غیر پایانی با تبدیل آنها به خطاهای پایان دهنده است. رسیدگی به خطا به مقداری که به متغیر $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
-
توقف – خطا در کنسول نمایش داده نمی شود و اجرای بیشتر خط لوله متوقف می شود. در مثال زیر هیچ خروجی وجود نخواهد داشت.
$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:WINDOWSsystem32>> $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