PowerShell中使用Filter来创建管道输入函数

所属分类: 脚本专栏 / PowerShell 阅读数: 761
收藏 0 赞 0 分享

本文介绍在自定义PowerShell函数时,不使用Function而使用Filter。Filter可以快速的创建一个管道输入函数,Filter就相当于只有一个Process块的Function。

Filter关键词可以代替Function关键词来创建函数。但Filter创建的函数,只能是接收管道输入参数的参数,并且是接收块结构数据的输入。所以在Filter定义的函数里面,你都看不到接收输入参数。

在Filter定义的函数中,使用$_变量,来遍历所有的输入对象。

复制代码 代码如下:

Filter Test-ApplicationProgram
{
    if ($_.MainWindowTitle -ne '')
    {
        $_
    }
}

执行结果如下:
复制代码 代码如下:

PS> Get-Process | Test-ApplicationProgram
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
787 53 110040 102008 319 7,91 7600 chrome
……

上面函数的作用是检测窗口标题不为的进程,输入参数必须是Process类型的变量。我们在演示的时候,使用了Get-Process来获取所有的进程,然后当参数传递给Filter。

另外再说一句,Filter创建的函数跟Function创建的函数,在本质上是一样的。所以,上面的Filter函数,与下面这段函数是一样的。

复制代码 代码如下:

Function Test-ApplicationProgram
{
    process
    {
        if ($_.MainWindowTitle -ne ‘')
        {
            $_
        }
    }
}

或者说,在PowerShell系统内部,Filter创建的函数将被翻译成上面这段Function存储在内存中。

关于PowerShell使用Filter来快速创建管道输入函数,本文就介绍这么多,希望对您有所帮助,谢谢!

更多精彩内容其他人还在看

Windows Powershell排序和分组管道结果

本文通过实例,详细介绍了Powershell如何对管道结果进行排序和分组,非常的实用,有需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell过滤管道结果

通过管道可以过滤某些对象和对象的属性,这个功能很实用,因为很多时候我们并不是对所有的结果感兴趣,可能只会对某些结果感兴趣。
收藏 0 赞 0 分享

Windows Powershell分析和比较管道结果

这篇文章主要介绍了Windows Powershell分析和比较管道结果,需要的朋友可以参考下
收藏 0 赞 0 分享

Powershell小技巧--将文件夹中的大文件分成若干份

这篇文章主要介绍了使用Powershell将文件夹中的大文件分成若干份的一段代码分享,非常实用,大家也可以根据需求自己来稍微调整下
收藏 0 赞 0 分享

Powershell小技巧--远程对比服务配置

这篇文章主要介绍了使用Powershell远程对比服务配置的方法,大家可以推广下获取服务器其他参数进行对比,希望对大家能有所帮助
收藏 0 赞 0 分享

Windows Powershell导出管道结果

本文主要讲诉了PowerShell的输出命令详细解释,以及导出管道结果的部分示例,非常有用,有需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell扩展类型系统

本文主要详细介绍了集中将对象转换成文本的方法,并附上示例说明,非常的实用,有需要的朋友可以参考下
收藏 0 赞 0 分享

Windows Powershell对象=属性+方法

从今天开始,我们这个系列的教程进入到讲诉使用对象的阶段,那么本阶段的第一篇还是先来熟悉下概念,简单的说对象=属性+方法
收藏 0 赞 0 分享

Windows Powershell属性:描述对象是什么

既然上文说明了对象=属性+方法,那么本文我们就先来探讨下属性。先从属性的概念入手,接着通过属性中包含对象、只读属性和读写属性、属性的类型、查看所有属性这4个方面详细向我们展示了对象。有需要的朋友展示下
收藏 0 赞 0 分享

Windows Powershell方法(对象能做什么)

方法定义了一个对象可以做什么事情。当你把一个对象输出在控制台时,它的属性可能会被转换成可视的文本。但是它的方法却不可见。
收藏 0 赞 0 分享
查看更多