PowerShell 中的 filter 关键字
Rohan Timalsina
2022年5月16日
函数是分配了名称的 PowerShell 语句的集合。要运行该函数,你必须键入函数名称。
函数中的语句在你运行该函数后运行。必须先定义函数,然后才能调用它。
过滤器是一种使用 filter
关键字的特殊类型的函数。本教程将教你在 PowerShell 中使用过滤器功能。
在 PowerShell 中使用 filter
函数
filter
是在管道中的每个对象上运行的函数。它的所有语句都包含在 filter
函数的进程块中。
通常,函数使用 Begin
或 End
参数,但 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