适用于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,脚本,条件断点

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com

评论“Powershell脚本中使用条件断点实例”

暂无“Powershell脚本中使用条件断点实例”评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。