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 3.0或者更高版本! PowerShell ISE只支持行断点:它可以让脚本运行至特定的调试行:你可以按F9来添加或者移除断点.但是需要保证该脚本已经保存过(默认的无标题文件可能就不行). 还有一种更加高级的方法:动态断点或者说是条件断点,其中没有特别限定某行,而是限定于一种特定的场景.比如下面的的示例脚本,每当PowerShell给指定的变量赋值时,就会击中断点停下来: 复制代码 代码如下: $bp = Set-PSBreakpoint -Variable a -M
-
Linux 在Shell脚本中使用函数实例详解
Linux 在Shell脚本中使用函数实例详解 Shell的函数 Shell程序也支持函数.函数能完成一特定的功能,可以重复调用这个函数. 函数格式如下: 函数名() { 函数体 } 函数调用方式: 函数名 参数列表 实例:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果. root@ubuntu:/home/study# vi test3 #!/bin/bash add(){ a=$1; b=$2; z=`expr $a + $b`; echo "The sum is $z&
-
PowerShell 脚本中的密码保存的方法
引言 笔者在<PowerShell 远程执行任务>一文中提到了在脚本中使用用户名和密码的基本方式: $Username = 'xxxx' $Password = 'yyyy' $Pass = ConvertTo-SecureString $Password -AsPlainText -Force $Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$Pass 上面的代码仅仅是能
-
Powershell脚本中包含文件资源的例子
Powershell3.0及以后版本. 如果你的脚本需要添加额外资源,比如文本中的服务器名.图片名等等,这时你需要考虑脚本的灵活性. 不要使用绝对路径去指派你的资源路径,在Powershell3.0中可以使用$PSScriptRoot替代你的脚本路径(不支持2.0) 复制代码 代码如下: $picture = "$PSScriptRoot\Resources\picture.png" Test-Path -Path $picture $data = "$PSScriptR
-
PowerShell脚本反引号用法实例:随时随地给代码换行
为了增强可读性,大家都喜欢将很长的本来可以一行写完的脚本分割成多行. 复制代码 代码如下: Get-Service | Where-Object { $_.Status -eq 'Running' } Get-Service | Where-Object { $_.Status -eq 'Running' } 在管道符号结束以后,我们可以直接换行.有时遇到花括号时,也可以非常安全的换行: 复制代码 代码如下: Get-Service | Where-Object { $_.Status
-
PowerShell脚本中控制Windows DNS服务的方法
PowerShell可以很方便的操作WMI,而DNS服务又提供了很好的WMI支持,所以,PowerShell可以通过操作WMI来操作Windows DNS服务. 1.获取DNS对象. 复制代码 代码如下: PS> $mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" 2.创建解析记录,使用CreateInstanceFromTextRepresentation方法. 复制代码 代码如下: PS>
-
PowerShell脚本中查看网卡的高级属性
复制代码 代码如下: PS> Get-NetAdapterBinding -Name 以太网 | Get-NetAdapterAdvancedProperty Name DisplayName DisplayValue RegistryKeyword RegistryValue ---- ----------- ------------ ---------------
-
使用HTTP api简单的远程执行PowerShell脚本
可能有些情况下,你不想完全体验通过PSRP(PowerShell远程处理协议)远程管理,或有需要从非Windows系统上执行一些PowerShell脚本.你可能会像我很久之前在这篇文章中写的那样直接基于WS-Man来写代码.但是那样很复杂,并且需要WS-Man和SOAP的一些知识. 我在PowerShell脚本中使用.Net HttpListener类写了个HTTP监听器.你可以非常简单地启动一个监听器的实例(需要提升权限监听网络),现在你可以执行任意的PowerShell命令了,它还可以返回多
-
PowerShell脚本监控文件夹变化实例
本文介绍使用PowerShell来监视一个指定的文件夹,包括新建文件.删除文件.重命名文件等操作均会被监控或监视.本文使用了System.IO.FileSystemWatcher这个.NET对象.首先,我们来看看程序: 复制代码 代码如下: # 定义要监控的文件夹,这个文件夹必须先存在. $folder = 'D:\test' # 定义每次监控的间隔时间,这时定义为1000毫秒,即1秒 $timeout = 1000 # 创建文件系统监视对象 $FileSystemWatcher = New-O
-
在cmd中直接运行PowerShell脚本文件的方法
以前在cmd中执行powershell,我们都是这样: 复制代码 代码如下: PowerShell.exe -file a.ps1 现在想在cmd中这样执行: 复制代码 代码如下: a.ps1 此时需要将Powershell脚本的默认打开方式选择为Powershell.exe,可以鼠标右键操作. 也可以使用下面的cmd以管理员权限打开,然后运行命令: 复制代码 代码如下: ftype Microsoft.Powershellscript.1="%SystemRoot%\system32\wind
随机推荐
- Angular在一个页面中使用两个ng-app的方法
- Ubuntu系统下用Crontab命令定时执行PHP文件详解
- Swift操作Quartz 2D进行简单的绘图与坐标变换的教程
- javascript中Function类型详解
- unity3d调用手机或电脑摄像头
- C#中的switch case使用介绍
- MySQL获取所有分类的前N条记录
- Linux shell中的printf的详细用法
- 文字溢出实现溢出的部分再放入一个新生成的div中具体代码
- jQuery中:header选择器用法实例
- 服务器免密登录的实现以及异常解决方案
- VC++中的字体设置方法详解
- jquery获得当前html页面源码的方法
- 基于vue组件实现猜数字游戏
- 基于JavaScript短信验证码如何实现
- IOS 出现问题POST网络请求状态code:500的解决方法
- js的三种继承方式详解
- Android自定义ViewGroup(侧滑菜单)详解及简单实例
- vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
- Android中activity从创建到显示的基本介绍