小編在使用PowerShell時(shí),經(jīng)常要使用Get-ChildItem(別名為dir),去獲取一些文件或目錄。然后要對(duì)這些結(jié)果按文件類型,即文件后綴去進(jìn)行篩選。很多次這樣的工作做下來,小編覺得煩了,有沒有簡(jiǎn)單的、一勞永逸的方法呢?我們今天就來探討。
不賣關(guān)子了,先給一個(gè)Filter代碼,大家先過目一下:
復(fù)制代碼 代碼如下:
Filter Where-Extension
{
param
(
[String[]]
$extension = ('.png', '.jpg', '.gif')
)
$_ |
Where-Object {
$extension -contains $_.Extension
}
}
什么是Filter呢,這么講吧,跟函數(shù)差不多,只不過是放在管道之后的。所以在Filter里面會(huì)看到“$_ |”這樣的標(biāo)記。這個(gè)Filter要求傳入一個(gè)數(shù)組參數(shù),那就是后綴列表。如果不傳,那默認(rèn)就篩選.png,.jpg和.gif。
好了,看看怎么使用的。
我想篩選中d盤根目錄下所有.txt或.log這樣的文本文件,PowerShell腳本這樣寫:
復(fù)制代碼 代碼如下:
dir d:\ | Where-Extension .txt,.log
大家可以跟小編一下,把這個(gè)Filter放到profile里面去,這樣每次調(diào)用就不用再定義而直接使用了。啊?你不知道什么是profile?那就去看看這篇文章吧。