国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PowerShell > 正文

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

2020-05-30 20:14:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

1、使用Get-ChildItem來(lái)得到所有的子文件夾和文件,然后再選取出所有的文件,再使用Measure-Object,最后再?gòu)腗easure-Object的結(jié)果中使用Select-Object的ExpandProperty參數(shù)來(lái)計(jì)算出個(gè)數(shù)。聽(tīng)起來(lái)就有點(diǎn)復(fù)雜,下面看看代碼吧。
代碼如下:
Get-ChildItem -Path $env:windir -Force |
 Where-Object { $_.PSIsContainer -eq $false } |
 Measure-Object |
 Select-Object -ExpandProperty Count

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

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

下面再附帶兩個(gè)循環(huán)讀取一個(gè)文件夾下的所有子文件夾下的、所有的文件個(gè)數(shù)的代碼:
代碼如下:
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)弊端都沒(méi)有,那就是如果在執(zhí)行過(guò)程中遇到?jīng)]有權(quán)限訪問(wèn)的文件,程序就會(huì)中斷。而使用Get-ChildItem方法,它有一個(gè)-ErrorAction參數(shù),可以對(duì)出錯(cuò)時(shí)進(jìn)行SilentlyContinue處理(忽略,繼續(xù)),這樣就會(huì)中斷了。

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 家居| 海伦市| 阿克| 福海县| 贺州市| 彭泽县| 凯里市| 文成县| 保定市| 无为县| 辰溪县| 祁连县| 子洲县| 绥棱县| 杭锦后旗| 余庆县| 长岛县| 洪泽县| 涟水县| 石门县| 西峡县| 繁昌县| 甘肃省| 泰兴市| 信阳市| 桂平市| 合作市| 隆化县| 大化| 芷江| 增城市| 新田县| 建德市| 乌兰县| 萍乡市| 凌源市| 陆川县| 乐山市| 资源县| 海城市| 广水市|