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
随机推荐
- 使用php完成常见的文件上传功能(推荐)
- 做一个困难重重的hta下载者
- 在windows下手动初始化PostgreSQL数据库教程
- Ubuntu设置开机自动挂载所有格式硬盘分区
- 通过U盘实现本机添加管理员权限
- iOS使用 CABasicAnimation 实现简单的跑马灯(无cpu暴涨)
- 详解Spring框架注解扫描开启之配置细节
- python中xrange和range的区别
- ASP.NET中Image控件使用详解
- js中的cookie的读写操作示例详解
- Bootstrap里的文件分别代表什么意思及其引用方法
- 64 位 ASP.Net 已注册 需要 32 位 ASP.Net 才能安装 Microsoft Reporting
- PHP与SQL注入攻击[一]
- C#设计模式之外观模式介绍
- 终于实现了!精彩的jquery弹幕效果
- SQLSERVER分布式事务使用实例
- coffeescript使用的方式汇总
- Java统计50个10到50之间整数的随机出现次数
- java String[]字符串数组自动排序的简单实现
- 基于JavaScript实现自定义滚动条