VBScript の On Error ステートメントの変換
定義: エラー処理を有効または無効にします。
既定では、Windows PowerShell はエラーが発生したときにエラー メッセージを表示します。エラー メッセージを表示せずに処理を続ける場合、Windows PowerShell の自動変数 $ErrorActionPreference の値を SilentlyContinue に設定します。具体的には次のように設定します。
$erroractionpreference = "SilentlyContinue"
この変数には次のような選択肢があります。
SilentlyContinue
Continue (既定値)
Inquire
Stop
これらのエラー処理の違いを次のスクリプトを例にとって説明します。このスクリプトは最初の行で構文エラーが発生します。
bob
$a = 2
$b = 2
$c = 2 + 2
$c
このスクリプトを実行した場合、エラー処理が Continue に設定されていると次のようなメッセージが表示されます。
用語 'bob' は、コマンドレット、関数、操作可能なプログラム、またはスクリプト ファイルとして認識されません。用語を確認し、再試行してください。
発生場所 C:\scripts\test.ps1:1 文字:4
+ bob <<<<
4
ご覧のように、スクリプトは処理を継続し、値 4 が画面にエコーバックされますが、それは詳細なエラー メッセージが表示された後です。
一方、エラー処理が SilentlyContinue に設定されている場合は、次のように表示されます。
4
スクリプトは処理を継続し、エラーは報告されません。エラー処理が Inquire に設定されていると処理は中断され、次の指示を待ちます。
この例外への対処:
用語 'bob' は、コマンドレット、関数、操作可能なプログラム、またはスクリプト ファイルとして認識されません。用語を確認し、再試行してください。
[C] 続行(C) [I] サイレント続行(I) [B] 中断(B) [S] 中断(S) [?] ヘルプ (既定値は "C"):
最後に、エラー処理が Stop に設定されている場合は次のようになります。
用語 'bob' は、コマンドレット、関数、操作可能なプログラム、またはスクリプト ファイルとして認識されません。用語を確認し、再試行してください。
発生場所 C:\scripts\test.ps1:1 文字:4
+ bob <<<<
この場合は、エラー メッセージが表示されてスクリプトは終了します。エラーが発生するとそれ以降の行のコードは実行されないので、値 4も表示されません。