Set-PSDebug
開啟和關閉腳本偵錯功能、設定追蹤層級,以及切換嚴格模式。
語法
Set-PSDebug
[-Trace <Int32>]
[-Step]
[-Strict]
[<CommonParameters>]
Set-PSDebug
[-Off]
[<CommonParameters>]
Description
Cmdlet 會 Set-PSDebug
開啟和關閉腳本偵錯功能、設定追蹤層級,以及切換 strict 模式。 根據預設,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:使用 strict 模式
此範例會將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 |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Step
開啟腳本逐步執行。 在每個行執行之前,PowerShell 會提示您停止、繼續或輸入新的解釋器層級,以檢查腳本的狀態。
指定 Step 參數會自動設定 的 1
追蹤層級。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Strict
指定變數必須先指派值,才能在腳本中參考。 如果在指派值之前參考變數,PowerShell 會傳回例外狀況錯誤。 這相當於 Set-StrictMode -Version 1
。 如需詳細資訊,請參閱 Set-StrictMode。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Trace
指定文稿中每一行的追蹤層級。 每次執行時,都會追蹤每一行。
此參數可接受的值如下:
- 0:關閉腳本追蹤。
- 1:追蹤腳本行執行時。
- 2:追蹤腳本行、變數指派、函數調用和腳本。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會傳回任何輸出。