PowerShell 中的 filter 关键字

Rohan Timalsina 2022年5月16日
PowerShell 中的 filter 关键字

函数是分配了名称的 PowerShell 语句的集合。要运行该函数,你必须键入函数名称。

函数中的语句在你运行该函数后运行。必须先定义函数,然后才能调用它。

过滤器是一种使用 filter 关键字的特殊类型的函数。本教程将教你在 PowerShell 中使用过滤器功能。

在 PowerShell 中使用 filter 函数

filter 是在管道中的每个对象上运行的函数。它的所有语句都包含在 filter 函数的进程块中。

通常,函数使用 BeginEnd 参数,但 filter 函数只有进程块。

语法:

filter [<scope:>]<name> {<statement list>}

filter 函数的主要目的是处理来自管道的输入。它有助于更​​快、更有效地处理管道输入。

以下示例将 1,2,3 作为管道的输入并显示整个输入。

命令:

filter Input {
$_
}
1,2,3,4,5 | Input

自动变量 $_ 有助于捕获管道的输入对象。

输出:

1
2
3
4
5

不需要在 filter 函数中使用 ForEach 循环,因为循环功能已经内置。

命令:

filter Input {
if ($_ -eq 2) {
 $_
}
}
1,2,3,4,5 | Input

输出:

2

下面的 filter 函数从管道中获取文件对象,然后将它们显示在输出中。

命令:

filter Get-Files {
$_
}
Get-ChildItem C:\folder2 -Recurse -ErrorAction SilentlyContinue | Get-Files

在上面的脚本中,Get-Child cmdlet 递归地获取目录 C:\folder2 中的项目。

输出:

Directory: C:\folder2

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2/23/2022  11:39 PM                New folder
-a----         2/23/2022  10:29 PM              0 books.txt
-a----         2/23/2022  10:29 PM              0 hello.txt

Directory: C:\folder2\New folder

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2/23/2022  10:26 PM              0 cars.txt

我们希望本文能帮助你了解如何在 PowerShell 中使用过滤器功能。有关详细信息,请阅读使用 Windows PowerShell 中的函数

作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website