Set-PSDebug

可以開啟或關閉腳本除錯功能、設定追蹤等級,並切換嚴格模式。

語法

on

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

off

Set-PSDebug
    [-Off]
    [<CommonParameters>]

Description

指令 Set-PSDebug 長可開啟或關閉腳本除錯功能、設定追蹤等級,並切換嚴格模式。 預設情況下,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:使用嚴格模式

這個範例將 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
預設值:False
支援萬用字元:False
不要顯示:False

參數集

off
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Step

啟動了劇本步驟。 在每行執行前,PowerShell 會提示你停止、繼續或輸入新的直譯器層級,以檢查腳本的狀態。

指定 Step 參數會自動設定 跡層級為 1。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

on
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Strict

規定變數必須先被賦予值,才能在腳本中被引用。 如果在賦值前就被引用變數,PowerShell 會回傳例外錯誤。 這相當於 Set-StrictMode -Version 1。 更多資訊請參見 Set-StrictMode。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

on
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Trace

指定腳本中每行的追蹤電平。 每條線路都會在運行時被描繪。

此參數可接受的值如下:

  • 0:關閉腳本描摹。
  • 1:在劇本執行時描摹。
  • 2:追蹤腳本行、變數指派、函式呼叫與腳本。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

on
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。