• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

浅析-PowerShell语言

发布: 2009-4-23 10:23 | 作者: 不详 | 来源: 测试时代采编 | 查看: 468次 | 进入软件测试论坛讨论

领测软件测试网

 图 1 dir 指令执行结果

  嗯!dir 果然也通,但是列示的方式不同于以往的 dir 指令。一时兴起,我输入了 UNIX 的 ls 指令,窗口显示了与 dir 指令相同的结果;真有趣(这时候我尚未阅读任何 Windows PowerShell 文件,只是很直觉输入指令)。

  Windows PowerShell 指令

  cmdlet 是 Windows PowerShell 的指令,这相当于 DOS 或其它 shell 的内建指令(但是刚刚输入的 dir 或 ls 并不是 cmdlet,这稍后将会说明),cmdlet 的发音方式是 command-let。cmdlet 名称的格式都是以连字符号隔开的一对动词和名词,并且通常都是单数名词。例如可以在线查询 cmdlet 用法的 cmdlet 即为 get-help。cmdlet 名称的动词部分大致有 get、set、add、remove 等等(Windows PowerShell 的操作与 DOS 相同,输入的字母都不分大小写)。

  get-help 是颇为重要的 cmdlet,可以在线查询所有的 Windows PowerShell 指令和说明文件。例如:

  • get-help *:列出所有的主题,包括指令和概念。
  • get-help * | more:列出所有的主题,包括指令和概念,而且显示满整个窗口就暂停。
  • get-help about*:列出所有的概念主题,例如万元字符、foreach 循环。
  • get-help get*:列出所有 get 开头的主题。
  • get-help {<指令名称或主题名称>}:列出指定的指令或主题的说明,例如 get-help dir 可以查询 dir 指令的用法,而 get-help about_wildcard 可以查询「万用字符」这项主题的用法。

  此外,也可以用 help 取代 get-help,最大的好处是 help 显示满整个窗口,预设就会自动暂停。

  一开始曾经使用了 dir 和 ls,虽然这并不是 cmdlet,但的确可用于 Windows PowerShell。原来这类的指令称为 alias(化名),类似 cmdlet 的快捷方式,例如 dir 和 ls 实际上都是 get-ChildItem 的 alias,get-ChildItem 才是 cmdlet;而 get-ChildItem 的功能,是列出磁盘驱动器指定位置的子项目。

  Windows PowerShell 的指令包含了许多内建的 alias,这些 alias 都是我们原本熟悉的 DOS 或 shell 指令,除了上述的 dir 和 ls,例如原本 DOS 指令的 rm、rmdir、rd、cls、copy 等,以及 BASH 的 cat、sleep、clear、cp 等,都是 Windows PowerShell 的 alias,也就是说,可以直接使用这些 alias;若要列出所有的 alias,可以用 get-alias 指令。除了使用内建的 alias,Windows PowerShell 也允许使用者以 set-alias 建立自己的 alias。

  除了 cmdlet 和 alias,Windows PowerShell 的指令还有 Application 和 Function 两种类型,前者指的是独立的程序文件(在 DOS 时代称为外部指令),后者是有名称的程序代码区块,也就是函式:不论 Application 或 Function 都可以当作 Windows PowerShell 指令来用,也可以用在脚本程序里。利用 get-command *,可以列出所有的指令。

  Windows PowerShell 的管线功能

  DOS 或 UNIX shell 都能利用「管线符号」(pipeline symbol),将指令的执行结果移转到另一个指令,让另一个指令处理前一个指令转来的数据。Windows PowerShell 的管线符号也是 |,例如之前用过的 get-help * | more,就是将 get-help * 的结果转给 more,而 more 会让结果显示满整个窗口就暂停。

  管线是各种 shell 环境的「黏合」最佳例证,例如管线就黏合了 Windows PowerShell 的各个指令,进而让各个指令完成一件工作。再举几个管线的例子。首先是:

  ipconfig | findstr "Address"

  被管线黏合的 ipconfig 和 findstr 都是 Win32 既有的外部指令,前者会显示、设定计算机的 IP 地址,后者则能以各种方式找出特定字符串。以上的叙述是将 ipconfig 的执行结果转给 findstr,并让 findstr 找出执行结果的 Address 字符串。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网