VBScript の On Error ステートメントの変換

Windows PowerShell

定義: エラー処理を有効または無効にします。

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も表示されません。

「VBScript から Windows PowerShell へ」ホーム ページに戻る