PowerShell 2.0 CTP版的新运算符介绍

来源:互联网 发布:网络风景图片大全图片 编辑:程序博客网 时间:2024/06/03 14:57
转载请保留作者姓名, 链接. 谢谢
作者: Edengundam(马涛)
今天,终于下载到了Windows XP-SP2 x86中文版的WS-Management v1.1。您可以在http://www.microsoft.com/downloads/details.aspx?familyid=845289CA-16CC-4C73-8934-DD46B5ED1D33&displaylang=zh-cn 下载到Windows XP和Windows 2003的版本。安装PowerShell 2.0 CTP版本,此补丁是必须要打上的。另外,如果您想使用Out-GridView和图形化的PS,您必须安装.Net 3.0。.Net 3.0完全兼容.Net 2.0,因此您不需要担心应用程序兼容性问题。
 
今天,将简单的给大家介绍CTP版本中的新语法,他们可能还会被修改,因此,这里只作为观察微软PowerShell团队开发动向的介绍。
首先,我们将要介绍splatting运算符,我们先声明一个三个元素的数组:
PS C:/> $param = 1,2,3
接下来,我们再声明一个可以输出参数个数的函数:
PS C:/> function argc() { $args.Count }
$args数组中包含了命令行上没有被参数列表中处理的参数。当我们直接调用函数argc时:
PS C:/> argc
0
 
接下来,我们将数组param传递给此函数:
PS C:/> argc $param
1
 
此时,我们可以看到数组param被当作一个对象传递给了函数argc。现在我们来试试直接传递数组1,2,3:
PS C:/> argc 1,2,3
1
 
和传递数组的结果是一样的。有时候,如果我们可以简单的将数组拆分成多个独立的元素传递给一个命令或函数将会非常方便,因此PowerShell 2.0 CTP中,就为我们提供了splatting运算符:
PS C:/> argc @param
3
 
这次,param数组被正确的分解为三个元素传递给了函数argc。最后,我们必须注意,此运算符只能运用在为命令传递参数的地方:
PS C:/> @paras
Use '$paras' instead of '@paras' when referencing variables in expressions. '@paras' can only be used as an argument to
 a command.
At line:1 char:7
+ @paras <<<<
 
如果我们错误的使用此运算符,我们就会收到错误提示。
现在,我们再来看一个非常有用的运算符-join:
-Join <String[]>
<String[]> -Join <分隔符>
 
与-Join相对应的-Split运算符比较复杂,因此,我将会专门为大家介绍。
-Join可以将多个字符串连接起来:
PS C:/> -join '1','2','3'
1
2
3
因为-Join运算符优先级比逗号运算符优先级高,因此,必须使用圆括号改变运算符结合顺序:
PS C:/> -join ('1','2','3')
123
 
默认情况下-join直接将数组连接起来,您可以使用<String[]> -Join <分隔符>形式来指定任意的分隔符:
PS C:/> '1','2','3' -join '+'
1+2+3
 
这样连接以后,就是一个PowerShell的语句,因此我们可以通过Invoke-Expression来执行它:
PS C:/> invoke-expression ('1','2','3' -join '+')
6
 
PowerShell的新运算符比较少,但是其实非常方便大家使用,下次我会专门为大家介绍-split运算符。
 
原创粉丝点击