PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本
微软在推出PS的同时,没有忘记其一贯的作风,什么东东都弄一个IDE环境,这不微软没有忘记给PS也来一个IDE的环境,
通过这个IDE环境,可以建立psl文件,可以调试psl文件。
1、IDE界面
我们看一下IDE环境的界面:

如图所示: IDE环境被分成了三个窗格,这个窗格的布局可以自定义。其中左上角的窗格是输出窗格,在IDE中执行的结果
通过它输出;左下角的窗口是交互窗格,也叫做命令窗格,可以在里面输入要执行的命令,同时这个窗格还会提示当前的工作路径,
上图的工作路径是:C:\users\vol_20120330,这个路径是我计算机当前用户的家目录(home directory);右边的窗格用来创建
psl文件,如图我键入了一条简单的命令:get-command,这个窗格也成为脚本窗格。
2、切换不同的窗格样式
通过视图菜单可以切换不同的窗格布局风格,还可以通过工具栏切换,具体就不切换了,可以打开PS ISE自己试试。
3、调试功能
编辑完脚本代码后可以通过运行它来查看结果,这可以通过调试菜单的命令来完成。如下图所示:

通过上图可以看出,PS ISE支持断点调试功能,这个弥补了以前脚本调试不容易的缺点,在CMD中执行脚本的
时候,需要通过特殊的方法才能获取一般的调试信息,在PS中这个功能得到了加强。
4、运行脚本
IDE环境中运行脚本主要有三种方法: 调试菜单、快捷键F5、工具栏的运行按钮,这个按钮和微软其他的IDE环境的按钮
形状一样,就是一个绿色的三角形;下图是执行上图的脚本文件的运行结果:

当然还可以在命令窗格中执行脚本,但是这样不太方便,需要提供脚本的执行路径。
5、调整字体
几个窗格中默认的字体比较小,看起来不舒服,IDE环境提供了放大缩小字体的功能,可以通过菜单和快捷键的方式来设置字体的大小
快捷键为:
Ctrl - + 增大字体
Ctrl - - 减小字体
6、调试功能
调试主要通过断点来实现,同时还会提供调试信息。
1)查看调试信息
当命令运行错误的时候,ISE会提供与PS console中一样的错误信息。如下图

如上图: 输出窗格中的红色字体就是错误信息,这个提示信息明确的指出了错误的类型和错误的位置。具体的错误信息意义很明了
这里就不加解释了。
2)插入/删除断点
ISE支持断点调试,可以插入和删除断点;如图所示。

熟悉微软其他IDE环境的人都熟悉以一个圆圈表示的断点,这里ISE做了一个较大的改进,当插入断点的时候;断点处用高亮的颜色
来表示,方便人来查看断点,不像圆圈断点,断点多了很难分辨。
3)断点调试输出
插入断点后,点击运行或者执行F5命令,就可以调试了;如图所示:

执行到断点处,脚本停止运行;同时脚本窗口断点处的颜色会进行改变,这样在很多断点的时候,就能清楚的知道运行到那个
位置了; 此时命令窗格发生了变化, 如上所示,命令窗格的标题栏出现了[dbg]:,表示目前处于调试模式,而且输出提示符变成了
“>>>”这样的形式; 同时输出窗格也会提示断点调试的位置。
4)调试
为了演示调试过程,我在脚本中加入了一句命令,同时启动调试模式,如下图:

可以看到,脚本运行到断点就停止,这时我们可以通过在命令窗格中输入命令来获取当前会话中的一些信息,或者来
获取脚本变量对象的值,如下图所示:

输入上面的命令,然后回车就会得到如下的输出:

通过这个调试器,可以方便的调试自己的脚本,可以大大的加快脚本开发的效率和准确性,同时也可以加深PS运行的理解;
复杂的调试技术这里就不再说了,有兴趣的朋友可以自己试试。
今天,发现园子的博客功能进行了一项功能改进:自动保存; 感觉这个不错,可以方便一次写不完,然后再次接着写,这样
就不用有时为了写完而弄到很晚了。
PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本的更多相关文章
- PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量 ...
- PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-comm ...
- PowerShell_零基础自学课程_1_初识PowerShell
欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...
- PowerShell_零基础自学课程_9_高级主题:静态类和类的操作
上次我们说到了,wmi对象和com组件,今天我们继续来看PS中对象的相关内容.主要说一下静态对象和对象的基本操作. 一.静态对象 在PS中有一类特殊的对象,我们不能同过这些类创建新的对象,这些类是不能 ...
- PowerShell_零基础自学课程_8_高级主题:WMI对象和COM组件
本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...
- PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell
上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...
- 月薪12k的零基础自学前端必备手册
随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者 ...
- 2019年最新超级有趣好玩的html+css网页布局课程,前端入门基础,html5+css3零基础入门课程-黑马程序员pink老师精心录制
大家好,我是黑马程序员pink老师!! 本次视频是前端零基础入门的课程,pink老师采取有趣好玩讲法,带你快乐的学习枯燥的html+css知识,学完之后让你能快速布局pc端页面.代码也可以讲的好玩有趣 ...
- 零基础自学用Python 3开发网络爬虫
原文出处: Jecvay Notes (@Jecvay) 由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照 ...
随机推荐
- Activity生命周期,状态保存恢复(经典)
一.整体框架 二.main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- java开发经验分享(二)
二. 数据库 1. SQL语句中保留字.函数名要大写,表明.字段名全部小写 如:SELECT vc_name,vc_sex,i_age FROM user WHERE i_id = 100 AND i ...
- FutureTask 测试用例
package currentTest.BlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent ...
- ASP.NET文件组成(转载于Owen的BLOG)
一.扩展名: .aspx:窗体文件,为前台程序. .cs文件:类文件,主要为后台数据处理,供所有的.aspx文件的后台应用. .asmx文件:用于创建从其他应用程序使用的web服务的类. .css文件 ...
- c#类和结构体的关系
原文地址:http://www.dnbcw.com/biancheng/c/fvhc81798.html 简介:这是c#类和结构体的关系的详细页面,介绍了和c/c++,有关的知识,谢谢大家的观看!要查 ...
- Oracle百问百答(四)
Oracle百问百答(四) 31.怎样查看某用户下的表? select table_name from all_tables where owner=upper('jhemr'); 32.怎样查看某用 ...
- testng 提供参数
获取页面元素属性,并把属性作为参数传递个测试方法,两桶不同的写法 1. @DataProvider public Iterator<Object[]> dp() { mySleep(500 ...
- hibernate错题解析
01 Hibernate错题分析 解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通 ...
- android 点击桌面图标,打开手机浏览器进入对应的站点
做一个假的adnroid app.要实现点击桌面图标.打开手机浏览器进入对应的站点,实现方法非常easy import android.app.Activity; import android.con ...
- [Redux] Redux: Extracting Container Components -- AddTodo
Code to be refactored: const AddTodo = ({ onAddClick }) => { let input; return ( <div> < ...