Powershell 断点执行
在脚本和函数中使用断点停止脚本执行,方便调试Powershell脚本的异常和错误。如果逻辑不是很复杂,直接输出一些帮助信息,也可以实现调试的目的。最简单的使用调试输出命令,如果你在控制台输入:
Write-Debug “输出一行调试信息,看看发生了神马?”
你可能会很奇怪,命令没有输出任何信息,感觉好像没做什么。事实上,Write-debug 的行为受$DebugPreference的影响,$DebugPreference值默认为”SilentlyContinue”,此时Write-debug不会输出任何信息。
$DebugPreference可选的配置如下:
SilentlyContinue:调试关闭
Stop:输出调试信息,终止脚本执行
Continue:输出调试信息,继续执行脚本
Inquire:输出调试信息,询问用户是否继续执行。
可以通过下面的例子对比:
除了自动化变量 $DebugPreference能配置调试信息输出的方式和行为,还有一些自动化变量可以实现类似的目的。
这里稍作回顾和总结。
ConfirmPreference:设置提问确认的级别
DebugPreference:设置debug信息的显示级别
ErrorActionPreference:设置发生错误后的执行动作
ErrorView:设置错误的显示模式
ProgressPreference:设置进度条的显示模式
ReportErrorShowExceptionClass:显示异常所在的类
ReportErrorShowInnerException:显示异常内部异常信息
ReportErrorShowSource:显示异常的来源
ReportErrorShowStackTrace:显示异常的错误跟踪栈
VerbosePreference:设置详细信息的显示模式
WarningPreference:设置警告信息的显示模式
单步跟踪:逐行执行
我们可以在 Powershell ISE 中通过F9断点执行Powershell脚本。但是即使没有ISE也可以单步跟踪。
只需要Set-PSDebug -step,Powershell会每只行一段代码,就会向用户询问是否继续执行。