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 不會傳回任何輸出。