Set-PSDebug

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

Syntax

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

關閉所有腳本偵錯功能。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Step

開啟腳本逐步執行。 在每個行執行之前,PowerShell 會提示您停止、繼續或輸入新的解釋器層級,以檢查腳本的狀態。

指定 Step 參數會自動設定 的 1追蹤層級。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Strict

指定變數必須先指派值,才能在腳本中參考。 如果在指派值之前參考變數,PowerShell 會傳回例外狀況錯誤。 這相當於 Set-StrictMode -Version 1。 如需詳細資訊,請參閱 Set-StrictMode

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Trace

指定文稿中每一行的追蹤層級。 每次執行時,都會追蹤每一行。

此參數可接受的值如下:

  • 0:關閉腳本追蹤。
  • 1:追蹤腳本行執行時。
  • 2:追蹤腳本行、變數指派、函數調用和腳本。
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。