PowerShellでは、エラーが発生した場合の振る舞いを変更することが可能です。
振る舞いの変更方法には2種類あり、コマンドレットごと、またはすべてのエラーに対して設定できます。
コマンドレットごとに指定する場合には -ErrorActionパラメータを、すべてのエラーに対して共通の振る舞いを行うようにするには$ErrorActionPreference変数を設定します。
設定可能な値は3つありますので、それぞれについてみてみましょう。
continue
デフォルトではContinueになっています。エラーが発生した場合はメッセージが出力されます。
エラーの内容は$Error変数に追加され、$?変数はfalseとなります。スクリプトは次の行から実行されます。
silentlycontinue
エラーが発生してもメッセージは出力されません。
stop
エラーの内容は$Error変数に追加され、$?変数はfalseとなります。スクリプトは停止します。
-ErrorActionパラメータの使用方法
-ErrorActionパラメータに"continue"を設定した場合はエラーメッセージが出力されます。
PS C:\Work> Get-ChildItem HIRO -ErrorAction "continue" Get-ChildItem : パス 'C:\Work\HIRO' が存在しないため検出できません。 発生場所 行:1 文字:14 + Get-ChildItem <<<< HIRO -ErrorAction "continue"
-ErrorActionパラメータに"silentlycontinue"を設定した場合はエラーメッセージが出力されません。
PS C:\Work> Get-ChildItem HIRO -ErrorAction "silentlycontinue" PS C:\Work>
$ErrorActionPreference変数の使用方法
$ErrorActionPreference変数へcontinueを設定する場合は下記のようにします。
PS C:\Work> $ErrorActionPreference = "continue"
$ErrorActionPreference変数へsilentlycontinueを設定する場合は下記のようにします。
PS C:\Work> $ErrorActionPreference = "silentlycontinue"
この状態で、さきほどエラーが発生したコマンドを実行してみましょう。
PS C:\Work> Get-ChildItem HIRO PS C:\Work>
今度はエラーメッセージは表示されません。
$ErrorActionPreference変数にsilentlycontinueを設定した効果が現れていることがわかります。
このように、-ErrorActionパラメータや$ErrorActionPreference変数は、エラー発生時の振る舞いを変更することが可能ですので、ぜひ仕様用途に応じて使い分けてみてください。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail