Set-PSDebug
開啟或關閉指令碼偵錯功能、設定追蹤層級和切換嚴格模式。
語法
Set-PSDebug [-Off] [<CommonParameters>]
Set-PSDebug [-Step] [-Strict] [-Trace <int>] [<CommonParameters>]
描述
Set-PSDebug Cmdlet 會開啟或關閉指令碼偵錯功能、設定追蹤層級並切換嚴格模式。
將 Trace 參數設定為 1 時,便會在執行指令碼時追蹤每一行內容。當此參數設定為 2 時,則會同時追蹤變數指派、函數呼叫和指令碼呼叫。如果指定 Step 參數,您會在每一行指令碼執行之前收到提示。
參數
-Off
關閉所有的指令碼偵錯功能。
注意:"set-strictmode -off" 命令會停用 "set-psdebug -strict" 命令所設定的驗證。如需詳細資訊,請參閱 Set-StrictMode。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Step
開啟指令碼逐步偵錯。執行每一行之前,系統會提示使用者停止、繼續或進入新的直譯器層級,以便檢查指令碼的狀態。
注意:指定 Step 參數時,會自動將 Trace 的層級設定為 1。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Strict
指定如果尚未指定變數值就參考變數,直譯器就會擲回例外狀況。
注意:"set-strictmode -off" 命令會停用 "set-psdebug -strict" 命令所設定的驗證。如需詳細資訊,請參閱 Set-StrictMode。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Trace <int>
指定追蹤層級:
0 - 關閉指令碼追蹤
1 - 執行指令碼時追蹤其各行內容
2 - 追蹤指令碼行、變數指派、函數呼叫以及指令碼。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
無 這個 Cmdlet 不會傳回任何輸出。 |
範例 1
C:\PS>set-psdebug -trace 2; foreach ($i in 1..3) {$i}
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
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}
2
DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i}
3
描述
-----------
這個命令會將追蹤層級設定為 2,然後執行會顯示 1、2 和 3 等數字的指令碼。
範例 2
C:\PS>set-psdebug -step; foreach ($i in 1..3) {$i}
DEBUG: 1+ 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
描述
-----------
這個命令會啟動逐步偵錯,然後
執行會顯示 1、2 和 3 等數字的指令碼。
範例 3
C:\PS>set-psdebug -off; foreach ($i in 1..3) {$i}
1
2
3
描述
-----------
這個命令會關閉所有偵錯功能,然後執行會顯示 1、2 和 3 等數字的指令碼。
範例 4
C:\PS>set-psdebug -strict; $NewVar
The variable $NewVar cannot be retrieved because it has not been set yet.
At line:1 char:28
+ Set-PsDebug -strict;$NewVar <<<<
描述
-----------
這個命令會將直譯器設定為嚴格模式,並嘗試存取尚未設定的變數。
請參閱
概念
about_Debuggers
Debug-Process
Set-PSBreakpoint
Set-StrictMode
Write-Debug