Powershell脚本中使用条件断点实例
适用于PowerShell 3.0或者更高版本!
PowerShell ISE只支持行断点:它可以让脚本运行至特定的调试行:你可以按F9来添加或者移除断点。但是需要保证该脚本已经保存过(默认的无标题文件可能就不行)。
还有一种更加高级的方法:动态断点或者说是条件断点,其中没有特别限定某行,而是限定于一种特定的场景。比如下面的的示例脚本,每当PowerShell给指定的变量赋值时,就会击中断点停下来:
$bp = Set-PSBreakpoint -Variable a -Mode Write -Script $psise.CurrentFile.FullPath
$a = 1
$a
$a
$a = 200
$a
Remove-PSBreakpoint -Breakpoint $bp
你还可以绑定更加高级和复杂的条件,比如你想当一个大于100的整数赋值给$a时,击中断点:
$Condition = { if ($a -is [Int] -and $a -gt 100) { break } }
$bp = Set-PSBreakpoint -Variable a -Mode Write -Script $psise.CurrentFile.FullPath -Action $Condition
$a = 1
$a
$a
$a = 200
$a
Remove-PSBreakpoint -Breakpoint $bp
荔非苔注:条件断点这个技巧比较冷门,但是一旦需要时却非常方便,比如我在某个稍微大点的脚本文件中多次给变量A赋值,可是不知某次赋了个错误的值,我想把这行代码找出来。如果没有条件断点,我可能得关键字搜索出所有变量A的赋值语句,并打上断点,工程浩大,而如果使用条件断点,阿弥陀佛!
相关文章
PowerShell函数中把参数传入另一个函数的函数传参例子
这篇文章主要介绍了PowerShell函数中把参数传入另一个函数例子也是使用的PSBoundParameters,但是有区别哦,,需要的朋友可以参考下2014-07-07Powershell的break、continue和return简单总结
这篇文章主要介绍了Powershell的break、continue和return简单总结,和其它语言中的作用相同,所以本文的总结比较短小,需要的朋友可以参考下2014-07-07PowerShell使用枚举变量定义带智能提示功能的函数参数
这篇文章主要介绍了PowerShell使用枚举变量定义带智能提示功能的函数参数,但定义后只在ISE当中有效,需要的朋友可以参考下2014-07-07PowerShell: Try...Catch...Finally 实现方法
PowerShell 本身有很多很好的错误控制,但是习惯于.net编程的人员,更喜欢用Try Catch Finally方法,尤其当有一段代码必须被执行到的时候。现在好了,adweigert 想出了一个好方法来实现。这个函数已经在多种情况下测试过,希望能对你有帮助2013-11-11
最新评论