共用方式為


Set-PSDebug

開啟和關閉腳本偵錯功能、設定追蹤層級,以及切換嚴格模式。

語法

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

Description

Set-PSDebug Cmdlet 會開啟和關閉腳本偵錯功能、設定追蹤層級,以及切換 strict 模式。 根據預設,PowerShell 偵錯功能已關閉。

Trace 參數的值 1時,每個腳本行都會在執行時進行追蹤。 當參數具有 2值時,也會追蹤變數指派、函數調用和腳本呼叫。 如果指定了 步驟 參數,則會在腳本的每一行執行之前提示您。

範例

範例 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 會提示您停止、繼續或輸入新的解釋器層級,以檢查腳本的狀態。

指定 步驟 參數會自動設定 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 不會傳回任何輸出。