Set-PSDebug
启用和禁用脚本调试功能、设置跟踪级别和切换严格模式。
语法
Set-PSDebug
[-Trace <Int32>]
[-Step]
[-Strict]
[<CommonParameters>]
Set-PSDebug
[-Off]
[<CommonParameters>]
说明
Set-PSDebug
cmdlet 启用和禁用脚本调试功能、设置跟踪级别和切换严格模式。 默认情况下,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 |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Step
启用脚本步进。 在运行每行之前,PowerShell 会提示你停止、继续或输入一个新的解释器级别来检查脚本的状态。
指定 Step 参数会自动将跟踪级别设置为 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 不返回任何输出。