本文介紹在自定義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來快速創建管道輸入函數,本文就介紹這么多,希望對您有所幫助,謝謝!
您可能感興趣的文章:- PowerShell實現按條件終止管道的方法
- PowerShell中終止管道的方法
- PowerShell入門教程之PowerShell管道介紹
- Windows Powershell導出管道結果
- Windows Powershell分析和比較管道結果
- Windows Powershell過濾管道結果
- Windows Powershell排序和分組管道結果
- Windows Powershell使用管道
- Windows Powershell 管道和重定向
- PowerShell函數中接收管道參數實例
- PowerShell管道入門必看篇(管道例子大全)