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
このコマンドレットは出力を返しません。