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
随机推荐
- Python环境下安装使用异步任务队列包Celery的基础教程
- Jquery ajax传递复杂参数给WebService的实现代码
- Kafka 常用命令行详细介绍及整理
- 基于Xen的VPS ubuntu+nginx+php安装教程
- Spring动态多数据源配置实例Demo
- php字符串截取问题
- 解析php中mysql_connect与mysql_pconncet的区别详解
- 跟老齐学Python之一个免费的实验室
- javascript firefox兼容ie的dom方法脚本
- 详解Python 数据库 (sqlite3)应用
- Python的Bottle框架中返回静态文件和JSON对象的方法
- Hibernate环境搭建与配置方法(Hello world配置文件版)
- Java用文件流下载网络文件示例代码
- PHP7之Mongodb API使用详解
- javascript使用window.name解决跨域问题第1/2页
- jQuery插件Timelinr 实现时间轴特效
- java判断字符串String是否为空问题浅析
- 轻松获得网通、电信、铁通IP地址分配段的方法
- 详解安装Eclipse Maven插件的几种方法
- Maven 错误找不到符号的解决方法