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 中的函式。
Author: Rohan Timalsina