次の方法で共有


Set-PSDebug

スクリプト デバッグ機能のオンとオフを切り替え、トレース レベルを設定し、厳密モードを切り替えます。

構文

Set-PSDebug
   [-Trace <Int32>]
   [-Step]
   [-Strict]
   [<CommonParameters>]
Set-PSDebug
   [-Off]
   [<CommonParameters>]

説明

Set-PSDebug コマンドレットは、スクリプトデバッグ機能のオンとオフを切り替え、トレース レベルを設定し、厳密モードを切り替えます。 既定では、PowerShell デバッグ機能はオフになっています。

Trace パラメーターの値が 1の場合、スクリプトの各行は実行時にトレースされます。 パラメーターの値が 2の場合、変数の割り当て、関数呼び出し、スクリプト呼び出しもトレースされます。 Step パラメーターを指定すると、スクリプトの各行が実行される前にメッセージが表示されます。

例 1: トレース レベルを設定する

次の使用例は、トレース レベルを 2に設定し、数値 1、2、3 を表示するスクリプトを実行します。

Set-PSDebug -Trace 2; foreach ($i in 1..3) {$i}

DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in  >>>> 1..3) {$i}
DEBUG:     ! SET $foreach = 'IEnumerator'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '1'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
1
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '2'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
2
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '3'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
3
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $foreach = ''.

例 2: ステップ実行を有効にする

次の使用例は、ステップ実行をオンにし、数値 1、2、3 を表示するスクリプトを実行します。

Set-PSDebug -Step; foreach ($i in 1..3) {$i}

Continue with this operation?
   1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A
DEBUG:    1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
1
2
3

例 3: 厳密モードを使用する

この例では、PowerShell を厳密モードにし、値が割り当てられない変数へのアクセスを試みます。

Set-PSDebug -Strict; $NewVar

The variable '$NewVar' cannot be retrieved because it has not been set.
At line:1 char:22
+ Set-PSDebug -Strict; $NewVar

例 4: デバッグ機能をオフにする

次の使用例は、すべてのデバッグ機能をオフにし、数値 1、2、3 を表示するスクリプトを実行します。

Set-PSDebug -Off; foreach ($i in 1..3) {$i}

1
2
3

パラメーター

-Off

すべてのスクリプト デバッグ機能をオフにします。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Step

スクリプトのステップ実行を有効にします。 各行が実行される前に、PowerShell によって、スクリプトの状態を検査するために、停止、続行、または新しいインタープリター レベルの入力を求められます。

Step パラメーターを指定すると、トレース レベルの 1が自動的に設定されます。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Strict

スクリプトで参照される前に変数に値を割り当てる必要があることを指定します。 値が割り当てられる前に変数が参照されている場合、PowerShell は例外エラーを返します。 これは、Set-StrictMode -Version 1と同じです。 詳細については、「Set-StrictMode」を参照してください。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Trace

スクリプト内の各行のトレース レベルを指定します。 各行は、実行時にトレースされます。

このパラメーターに使用できる値は次のとおりです。

  • 0: スクリプト トレースをオフにします。
  • 1: スクリプト行の実行をトレースします。
  • 2: スクリプト行、変数の割り当て、関数呼び出し、およびスクリプトをトレースします。
型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

None

このコマンドレットは出力を返しません。