共用方式為


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