Set-PSDebug

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

構文

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

説明

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

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

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

次の使用例は、トレース レベルを 1、 22、3 に設定し、数値 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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Step

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Strict

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Trace

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

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

  • 0: スクリプト トレースをオフにします。
  • 1: スクリプト行の実行をトレースします。
  • 2: スクリプト行、変数の割り当て、関数呼び出し、およびスクリプトをトレースします。
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

None

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

出力

None

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