PowerShell中使用Filter來創(chuàng)建管道輸入函數(shù)
本文介紹在自定義PowerShell函數(shù)時,不使用Function而使用Filter。Filter可以快速的創(chuàng)建一個管道輸入函數(shù),F(xiàn)ilter就相當于只有一個Process塊的Function。
Filter關鍵詞可以代替Function關鍵詞來創(chuàng)建函數(shù)。但Filter創(chuàng)建的函數(shù),只能是接收管道輸入?yún)?shù)的參數(shù),并且是接收塊結構數(shù)據(jù)的輸入。所以在Filter定義的函數(shù)里面,你都看不到接收輸入?yún)?shù)。
在Filter定義的函數(shù)中,使用$_變量,來遍歷所有的輸入對象。
Filter Test-ApplicationProgram
{
if ($_.MainWindowTitle -ne '')
{
$_
}
}
執(zhí)行結果如下:
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
……
上面函數(shù)的作用是檢測窗口標題不為的進程,輸入?yún)?shù)必須是Process類型的變量。我們在演示的時候,使用了Get-Process來獲取所有的進程,然后當參數(shù)傳遞給Filter。
另外再說一句,F(xiàn)ilter創(chuàng)建的函數(shù)跟Function創(chuàng)建的函數(shù),在本質上是一樣的。所以,上面的Filter函數(shù),與下面這段函數(shù)是一樣的。
Function Test-ApplicationProgram
{
process
{
if ($_.MainWindowTitle -ne ‘')
{
$_
}
}
}
或者說,在PowerShell系統(tǒng)內部,F(xiàn)ilter創(chuàng)建的函數(shù)將被翻譯成上面這段Function存儲在內存中。
關于PowerShell使用Filter來快速創(chuàng)建管道輸入函數(shù),本文就介紹這么多,希望對您有所幫助,謝謝!
相關文章
PowerShell中使用Get-Alias命令獲取cmdlet別名例子
這篇文章主要介紹了PowerShell中使用Get-Alias命令獲取cmdlet別名的例子,PowerShell中兼容DOS下和Linux下的很多命令,這些都是靠別名來實現(xiàn)的,需要的朋友可以參考下2014-08-08
PowerShell函數(shù)中限制數(shù)組參數(shù)個數(shù)的例子
這篇文章主要介紹了PowerShell中限制函數(shù)的數(shù)組參數(shù)個數(shù)的例子,可以控制數(shù)組的參數(shù)個數(shù)在指定范圍內,需要的朋友可以參考下2014-07-07
PowerShell中字符串使用單引號和雙引號的區(qū)別
這篇文章主要介紹了PowerShell中字符串使用單引號和雙引號的區(qū)別,大家可能會經常遇到這個問題,需要的朋友可以參考下2014-08-08
Powershell直接腳本時出現(xiàn)無法加載文件因為禁止執(zhí)行腳本
Powershell直接腳本時出現(xiàn)無法加載文件因為在此系統(tǒng)中禁止執(zhí)行腳本,有關此問題的解決方法如下2014-08-08
Windows Powershell 創(chuàng)建數(shù)組
在日常處理中,除了使用像“數(shù)值類型”和“字符串類型”外,還需要使用能夠包含其他對象的“集合”類型。大多數(shù)常見語言,都提供一些操作集合類型的語法。最基本的集合類型就是數(shù)組類型,它提供了一種下標基于0的數(shù)組對象。2014-09-09

