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