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

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

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

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

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

