探索PowerShell(十二) 篩選器 Filters
更新時間:2012年12月05日 17:42:38 作者:
篩選器是函數(shù)的一種特殊形式
篩選器是函數(shù)的一種特殊形式。
定義篩選器:
Filter(關(guān)鍵字) 篩選器名 (參數(shù)) {代碼}
與定義函數(shù)不同的是,函數(shù)使用"$input"變量來從管道符中獲取信息,而篩選器使用的是變量"$_"。在對數(shù)據(jù)的處理方面,函數(shù)與篩選器也有著不同,在函數(shù)中,"$input"變量會接受所有的信息,再進行運算,而在篩選器中,"$_"變量會一邊接受來自管道符的信息,一邊進行篩選(運算)操作。
總結(jié)說來,對于函數(shù):管道符將數(shù)據(jù)一次以集合方式傳入函數(shù)內(nèi)部,函數(shù)需要使用循環(huán)或者遞歸方式處理。對于篩選器:管道符每傳入一個數(shù)據(jù),代碼就執(zhí)行一次,直至所有數(shù)據(jù)傳入完畢。
上一節(jié)講述函數(shù)的最后,使用了如下的例子:
function fun{
begin{
"Start"
$i=1
}
process{
"run "+$i
$_.name
$i++
}
end{
"End"
}
}
ls | fun
在這里,對其稍作修改,改為:
function fun{
"run"
$_.name
}
ls | fun
運行結(jié)果如下:

可以看到,并沒有做任何"ls"輸出。在原示例中,因為使用了"process"聲明,因此,代碼塊得以往復(fù)執(zhí)行直至數(shù)據(jù)處理結(jié)束,但是,此例中其結(jié)果與之大相徑庭。
若將其修改為如下形式:
filter fun{
"run"
$_.name
}
ls | fun
運行結(jié)果:

如此便可以看到與上一節(jié)內(nèi)容一樣的輸出。
也就是說,內(nèi)部含有"process"標(biāo)記代碼塊的函數(shù),同樣具有篩選器的作用。
定義篩選器:
Filter(關(guān)鍵字) 篩選器名 (參數(shù)) {代碼}
與定義函數(shù)不同的是,函數(shù)使用"$input"變量來從管道符中獲取信息,而篩選器使用的是變量"$_"。在對數(shù)據(jù)的處理方面,函數(shù)與篩選器也有著不同,在函數(shù)中,"$input"變量會接受所有的信息,再進行運算,而在篩選器中,"$_"變量會一邊接受來自管道符的信息,一邊進行篩選(運算)操作。
總結(jié)說來,對于函數(shù):管道符將數(shù)據(jù)一次以集合方式傳入函數(shù)內(nèi)部,函數(shù)需要使用循環(huán)或者遞歸方式處理。對于篩選器:管道符每傳入一個數(shù)據(jù),代碼就執(zhí)行一次,直至所有數(shù)據(jù)傳入完畢。
上一節(jié)講述函數(shù)的最后,使用了如下的例子:
復(fù)制代碼 代碼如下:
function fun{
begin{
"Start"
$i=1
}
process{
"run "+$i
$_.name
$i++
}
end{
"End"
}
}
ls | fun
在這里,對其稍作修改,改為:
復(fù)制代碼 代碼如下:
function fun{
"run"
$_.name
}
ls | fun
運行結(jié)果如下:

可以看到,并沒有做任何"ls"輸出。在原示例中,因為使用了"process"聲明,因此,代碼塊得以往復(fù)執(zhí)行直至數(shù)據(jù)處理結(jié)束,但是,此例中其結(jié)果與之大相徑庭。
若將其修改為如下形式:
復(fù)制代碼 代碼如下:
filter fun{
"run"
$_.name
}
ls | fun
運行結(jié)果:

如此便可以看到與上一節(jié)內(nèi)容一樣的輸出。
也就是說,內(nèi)部含有"process"標(biāo)記代碼塊的函數(shù),同樣具有篩選器的作用。
相關(guān)文章
PowerShell中使用Out-File把字符串或運行結(jié)果保存到文件的方法
這篇文章主要介紹了PowerShell中使用Out-File把字符串或運行結(jié)果保存到文件的方法,重點在于Out-File命令的使用方法上,需要的朋友可以參考下2014-08-08
PowerShell小技巧之定時記錄操作系統(tǒng)行為
這篇文章主要介紹了使用PowerShell定時記錄操作系統(tǒng)行為的小技巧,需要的朋友可以參考下2014-10-10
Windows Powershell For 循環(huán)
這篇文章主要介紹了Windows Powershell For 循環(huán)的定義、用法以及示例,非常簡單實用,有需要的朋友可以參考下2014-10-10
Powershell目錄文件夾管理權(quán)限的繼承和指定方法
這篇文章主要介紹了Powershell目錄文件夾管理權(quán)限的繼承和指定方法,本文給出了創(chuàng)建文件夾、獲取當(dāng)前權(quán)限、添加新的權(quán)限、添加管理員權(quán)限等,需要的朋友可以參考下2015-06-06
自定義PowerShell控制臺提示符風(fēng)格的方法
這篇文章主要介紹了自定義PowerShell控制臺提示符風(fēng)格的方法,需要的朋友可以參考下2014-04-04
PowerShell實現(xiàn)在多個文件中檢索關(guān)鍵字功能
這篇文章主要介紹了PowerShell實現(xiàn)在多個文件中檢索關(guān)鍵字功能,本文使用Select-String解決這了個需求,需要的朋友可以參考下2015-01-01
PowerShell中把相對路徑轉(zhuǎn)換為絕對路徑的2個方法
這篇文章主要介紹了PowerShell中把相對路徑轉(zhuǎn)換為絕對路徑的2個方法,并對他的區(qū)別做了講解,需要的朋友可以參考下2014-08-08

