【探索PowerShell 】【十二】筛选器 - Filters
2010-04-15 13:24
337 查看
筛选器是函数的一种特殊形式。
定义筛选器:
与定义函数不同的是,函数使用"$input"变量来从管道符中获取信息,而筛选器使用的是变量"$_"。在对数据的处理方面,函数与筛选器也有着不同,在函数中,"$input"变量会接受所有的信息,再进行运算,而在筛选器中,"$_"变量会一边接受来自管道符的信息,一边进行筛选(运算)操作。
总结说来,对于函数:管道符将数据一次以集合方式传入函数内部,函数需要使用循环或者递归方式处理。对于筛选器:管道符每传入一个数据,代码就执行一次,直至所有数据传入完毕。
上一节讲述函数的最后,使用了如下的例子:
在这里,对其稍作修改,改为:
运行结果如下:
可以看到,并没有做任何"ls"输出。在原示例中,因为使用了"process"声明,因此,代码块得以往复执行直至数据处理结束,但是,此例中其结果与之大相径庭。
若将其修改为如下形式:
运行结果:
如此便可以看到与上一节内容一样的输出。
也就是说,内部含有"process"标记代码块的函数,同样具有筛选器的作用。
定义筛选器:
Filter(关键字) 筛选器名 (参数) {代码} |
总结说来,对于函数:管道符将数据一次以集合方式传入函数内部,函数需要使用循环或者递归方式处理。对于筛选器:管道符每传入一个数据,代码就执行一次,直至所有数据传入完毕。
上一节讲述函数的最后,使用了如下的例子:
function fun{ begin{ "Start" $i=1 } process{ "run "+$i $_.name $i++ } end{ "End" } } ls | fun
在这里,对其稍作修改,改为:
function fun{ "run" $_.name } ls | fun
运行结果如下:
可以看到,并没有做任何"ls"输出。在原示例中,因为使用了"process"声明,因此,代码块得以往复执行直至数据处理结束,但是,此例中其结果与之大相径庭。
若将其修改为如下形式:
filter fun{ "run" $_.name } ls | fun
运行结果:
如此便可以看到与上一节内容一样的输出。
也就是说,内部含有"process"标记代码块的函数,同样具有筛选器的作用。
相关文章推荐
- 探索PowerShell(十二) 筛选器 Filters
- 【探索PowerShell 】【五】PowerShell基础知识
- 【探索PowerShell 】【六】脚本基础简要
- 【探索PowerShell 】【十】循环语句
- 【探索PowerShell 】【十四】使用WMI对象的方法
- Android系列教程之十二:Intents and Intent Filters(三)
- ROS探索总结(十)(十一)(十二)——语音控制 机器视觉 坐标系统
- 探索PowerShell
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十二:JSSE(二):JSSE类和接口
- 【探索PowerShell 】【二】基本操作
- Groovy探索之MOP 十二 方法的调用顺序
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十二)Configure user account properties with Office 365 PowerShel
- 【探索PowerShell 】【一】初识
- 【探索PowerShell 】【十三】WMI对象
- 用PowerShell探索System.RuntimeType类型
- 探索PowerShell(一) 初识 PowerShell
- 探索PowerShell(十一)函数介绍
- ROS探索总结(十二)——坐标系统
- 【探索PowerShell 】【三】PowerShell下使用Aliases
- filters文件,文件筛选器