使用脚本和函数中的断点停止脚本执行,以便于调试Powershell脚本异常和错误。如果逻辑不是很复杂,直接输出一些帮助信息也可以达到调试的目的。调试输出命令的最简单用法,如果您在控制台中输入:
写调试“输出一行调试信息,看看发生了什么?”
您可能会惊讶于该命令没有输出任何信息,并且感觉好像什么也没做。事实上,写调试的行为受$ DebugPreference的影响,它默认为“SilentlyContinue”,此时写调试不会输出任何信息。
$DebugPreference的可选配置如下:
SilentlyContinue:调试已关闭
停止:输出调试信息并终止脚本执行
继续:输出调试信息并继续执行脚本
查询:输出调试信息,询问用户是否继续执行。
可以通过下面的例子来比较:
除了可以配置调试信息输出的方式和行为的自动化变量$DebugPreference之外,还有一些可以达到类似目的的自动化变量。
这里有一个简短的回顾和总结。
确认首选项:设置问题确认的级别
设置调试信息的显示级别。
错误操作首选项:设置发生错误后要采取的操作
错误视图:设置错误的显示模式
设置进度条的显示模式
ReportErrorShowExceptionClass:显示异常所在的类
ReportErrorShowInnerException:显示异常内部的异常信息
报告错误显示来源:显示异常的来源
报告错误显示堆栈跟踪:显示异常的错误跟踪堆栈
VerbosePreference:设置详细信息的显示模式
警告参考:设置警告消息的显示模式
单步跟踪:逐行跟踪
我们可以通过Powershell ISE中的F9断点执行Powershell脚本。但即使没有ISE,一步跟踪也是可能的。
只需要set-psdebug-step,powershell将只执行一段代码,并询问用户是否继续执行。