最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PowerShell統(tǒng)計(jì)文件夾下文件個(gè)數(shù)的方法

 更新時(shí)間:2014年08月11日 09:41:52   投稿:junjie  
這篇文章主要介紹了PowerShell統(tǒng)計(jì)文件夾下文件個(gè)數(shù)的方法,本文介紹了2種訪求實(shí)現(xiàn)這個(gè)需求,需要的朋友可以參考下

計(jì)算一個(gè)文件夾下面的文件個(gè)數(shù)是一件很容易的事情,但看到這篇文章之前,還從來沒有想過計(jì)算一下文件個(gè)數(shù)還有這么多學(xué)問在里頭。

我們這里有兩種方法來計(jì)算文件夾下的文件個(gè)數(shù),下面分別展示詳細(xì)的代碼來計(jì)算windows目錄下的文件個(gè)數(shù)。

1、使用Get-ChildItem來得到所有的子文件夾和文件,然后再選取出所有的文件,再使用Measure-Object,最后再從Measure-Object的結(jié)果中使用Select-Object的ExpandProperty參數(shù)來計(jì)算出個(gè)數(shù)。聽起來就有點(diǎn)復(fù)雜,下面看看代碼吧。

復(fù)制代碼 代碼如下:

Get-ChildItem -Path $env:windir -Force |
 Where-Object { $_.PSIsContainer -eq $false } |
 Measure-Object |
 Select-Object -ExpandProperty Count

2、使用.NET自帶的方法來完成。[System.IO.Directory]::GetFiles(string dir)這種使用方法大家不默生吧,不過沒關(guān)系,懂.NET的朋友們看一眼就懂。當(dāng)然反過來,如果不懂.NET的朋友也沒有關(guān)系,見到一個(gè)有用的就學(xué)一個(gè),也沒有必要為了更好的使用PowerShell就去把.NET學(xué)一遍——雖然這也是一件很有意義的事。
復(fù)制代碼 代碼如下:

[System.IO.Directory]::GetFiles($env:windir).Count

這段代碼要著重說一下,據(jù)磚家研究,它的執(zhí)行速度是第一種方法的20倍。好了,小編閉嘴了。

下面再附帶兩個(gè)循環(huán)讀取一個(gè)文件夾下的所有子文件夾下的、所有的文件個(gè)數(shù)的代碼:

復(fù)制代碼 代碼如下:

Get-ChildItem -Path $env:windir -Force -Recurse -ErrorAction SilentlyContinue |
 Where-Object { $_.PSIsContainer -eq $false } |
 Measure-Object | 
 Select-Object -ExpandProperty Count

[System.IO.Directory]::GetFiles($env:windir, '*', 'AllDirectories').Count


同樣的,.NET的方法效率要高得多。當(dāng)然.NET的也不是一點(diǎn)弊端都沒有,那就是如果在執(zhí)行過程中遇到?jīng)]有權(quán)限訪問的文件,程序就會中斷。而使用Get-ChildItem方法,它有一個(gè)-ErrorAction參數(shù),可以對出錯(cuò)時(shí)進(jìn)行SilentlyContinue處理(忽略,繼續(xù)),這樣就會中斷了。

最后兩種方法怎么取舍呢,小編因?yàn)槭悄贻p人,喜歡效率高的。但有時(shí)候也沒有辦法,為了讓系統(tǒng)更穩(wěn)定,小編也不得不選擇更優(yōu)雅的——雖然它慢一點(diǎn)。

相關(guān)文章

最新評論

扬州市| 双辽市| 海兴县| 延安市| 元朗区| 宜阳县| 刚察县| 信阳市| 湘乡市| 孟连| 睢宁县| 灵石县| 锦州市| 关岭| 宕昌县| 图木舒克市| 栾城县| 环江| 札达县| 莒南县| 洞头县| 峨边| 柘荣县| 龙口市| 乌什县| 渑池县| 湘西| 会昌县| 道孚县| 正镶白旗| 江安县| 报价| 罗田县| 柯坪县| 龙川县| 玉屏| 萝北县| 罗山县| 长岛县| 班玛县| 双江|