探索PowerShell(十二) 筛选器 Filters_PowerShell

筛选器是函数的一种特殊形式。

定义筛选器:

Filter(关键字) 筛选器名 (参数) {代码}

与定义函数不同的是,函数使用"$input"变量来从管道符中获取信息,而筛选器使用的是变量"$_"。在对数据的处理方面,函数与筛选器也有着不同,在函数中,"$input"变量会接受所有的信息,再进行运算,而在筛选器中,"$_"变量会一边接受来自管道符的信息,一边进行筛选(运算)操作。
总结说来,对于函数:管道符将数据一次以集合方式传入函数内部,函数需要使用循环或者递归方式处理。对于筛选器:管道符每传入一个数据,代码就执行一次,直至所有数据传入完毕。

上一节讲述函数的最后,使用了如下的例子:

复制代码 代码如下:

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"标记代码块的函数,同样具有筛选器的作用。

时间: 2024-10-30 06:28:37

探索PowerShell(十二) 筛选器 Filters_PowerShell的相关文章

探索PowerShell(十) 循环语句介绍_PowerShell

PowerShell作为可编程性语言,拥有以下循环语句. 注:本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解. • for (初值;表达式;赋值语句) {代码} 用变量值控制执行次数 • foreach (成员变量 in 数组) {代码} 利用迭代执行代码 • foreach-object 对一组输入的每个对象执行运算 • while(表达式) {代码} 表达式为真时循环执行代码 • do {代码} while(表达式)

【探索PowerShell 】【十二】筛选器

筛选器是函数的一种特殊形式. 定义筛选器: Filter(关键字) 筛选器名 (参数) {代码} 与定义函数不同的是,函数使用"$input"变量来从管道符中获取信息,而筛选器使用的是变量"$_".在对数据的处理方面,函数与筛选器也有着不同,在函数中,"$input"变量会接受所有的信息,再进行运算,而在筛选器中,"$_"变量会一边接受来自管道符的信息,一边进行筛选(运算)操作. 总结说来,对于函数:管道符将数据一次以集合方式

WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)

原文:WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]大部分的系统都是以数据为中心的(Data Central),功能的实现表现在对相关数据的正确处理.而数据本身,是有效信息的载体,在不同的环境具有不同的表示.一个分布式的互联系统关注于数据的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据结

Asp.Net Web API 2第十二课——Media Formatters媒体格式化器

原文:Asp.Net Web API 2第十二课--Media Formatters媒体格式化器 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程演示如何在ASP.NET Web API中支持额外的媒体格式. Internet Media Types--Internet的媒体类型 媒体类型,也叫做MIME类型,标识了一片数据的格式.在HTTP中,媒体类型描述了消息体

Jquery 1.9.1源码分析系列(十二)之筛选操作_jquery

废话不多说了直接奔入主题了. jQuery.fn.find( selector ) find接受一个参数表达式selector:选择器(字符串).DOM元素(Element).jQuery对象.分两种情况处理: 第一种,如果传入的参数是非字符串,则先通过jQuery选择器将selector查找出来,然后过滤出包含于当前jQuery对象所匹配的元素的节点. if ( typeof selector !== "string" ) { self = this; return this.pus

无法加载站点/服务的所有 ISAPI 筛选器。因此启动中止错误解决方法

网站访问时会出错Service Unavailable错误,并在系统日志中会出现相关如下的错误信息:无法加载站点/服务的所有 ISAPI 筛选器. 下面收集了相关的原因分析和解决方法,请仔细阅读. Service Unavailable解决为什么会Service Unavailable ?一. 如果出现"Service Unavailable"的提示,刷新几下又可以访问.出现这种情况是由于您的网站超过了iis限制造成的,由于2003的操作系统在提示IIS过多时并非像2000系统提示&q

深入探讨ASP.NET MVC的筛选器

在ActionInvoker对Action的执行过程中,除了通过利用ActionDescriptor对Action方法的执行,以及之前进行的Model绑定与验证之外,还具有一个重要的工作,那就是对相关筛选器(Filter)的执行.ASP.NET MVC的筛选器是一种基于AOP(面向方面编程)的设计,我们将一些非业务的逻辑实现在相应的筛选器中,然后以一种横切(Crosscutting)的方式应用到对应的Action方法.当Action方法执行前后,这些筛选器会自动执行.ASP.NET MVC提供了

Exchange 2003安全用筛选器反垃圾邮件

随着电子邮箱的普及,为了使用户更好的利用邮箱资源,一大关键问题就是如何处理多如牛毛的垃圾邮件. 所谓垃圾邮件就是非用户意愿所产生的邮件.它不仅影响用户的正常查阅.更对服务器造成重大危害,主要表现在增加服务器.网络消耗及占据磁盘空间.而对于大多数企业而言,面临的邮件难题主要是:怎样允许正常的电子邮件传入并拦截垃圾邮件.这就需要用正确的方法来在 Exchange Server 环境中打击垃圾邮件. 带有 SP2 的Microsoft Exchange Server 2003 使用了多种筛选方法来减少

Win2008应用之IIS 7中ISAPI筛选器配置

Internet 服务器应用程序编程接口 (ISAPI) 筛选器是一种可以添加到 IIS 中以增强 Web 服务器行为的程序.ISAPI 筛选器会接收向 Web 服务器发出的每个 HTTP 请求并向服务器提供附加的功能,例如记录请求信息.对用户进行身份验证和授权.重写 URL 以及压缩 Web 内容以降低带宽成本等. 在 IIS 7.0 中,模块代替了 ISAPI 筛选器,但如果你需要 ISAPI 筛选器提供的功能,则也可以添加相应的筛选器. (一)添加 ISAPI 筛选器 若要增强 Web 服