您的位置:首页 > 运维架构 > Shell

Foreach-Object与Where-Object在PowerShell 3.0中的改动

2012-04-29 15:44 429 查看
在PowerShell 3.0增加了许多新语句功能同时也简化了许多语法功能,这里最为明显也的就是Foreach-Object与Where-Object了。在V3中省略了“$_”与“{}”的作用,我们通过如下几个简短的小例子说明:

通常我们使用Where-Object或Where(别名)来筛选我们想要的数据都会通过管道传递过来的对象做筛选,如下命令,我们会用到“$_” 这个对象初始功能:

Get-Process|Where-Object{$_.name -like "notepad"}


但是到了PowerShell 3.0中完全不需要这样做了,语句将变的更为简单:

Get-Process|Where name -like "notepad"


在Foreach中也同样如此:

"Hello", "World" | ForEach-Object PadRight  10 "-"


对于今后的PowerShell初学者而言,命令变的更为简单了,但对于从PowerShell 1.0一路走来的人来说不免有点不习惯,好在的是以往的使用方法依然兼容。

那么为什么要改变呢,我从一些公开文章中发现PowerShell Team是希望PowerShell Cmdlet更加接近所谓的command自然命令形态,而不是作为一种脚本语言的语法形态所存在。所以才有了现在这样的改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: