佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > PowerShell統(tǒng)計文件夾下文件個數(shù)的方法

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

熱門標簽:AI電銷 網(wǎng)站排名優(yōu)化 百度競價排名 呼叫中心市場需求 服務外包 地方門戶網(wǎng)站 鐵路電話系統(tǒng) Linux服務器

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

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

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

復制代碼 代碼如下:

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的朋友們看一眼就懂。當然反過來,如果不懂.NET的朋友也沒有關(guān)系,見到一個有用的就學一個,也沒有必要為了更好的使用PowerShell就去把.NET學一遍——雖然這也是一件很有意義的事。
復制代碼 代碼如下:

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

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

下面再附帶兩個循環(huán)讀取一個文件夾下的所有子文件夾下的、所有的文件個數(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的方法效率要高得多。當然.NET的也不是一點弊端都沒有,那就是如果在執(zhí)行過程中遇到?jīng)]有權(quán)限訪問的文件,程序就會中斷。而使用Get-ChildItem方法,它有一個-ErrorAction參數(shù),可以對出錯時進行SilentlyContinue處理(忽略,繼續(xù)),這樣就會中斷了。

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

標簽:衡水 湘潭 崇左 黃山 蘭州 湖南 仙桃 銅川

巨人網(wǎng)絡通訊聲明:本文標題《PowerShell統(tǒng)計文件夾下文件個數(shù)的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    抚宁县| 潼南县| 上栗县| 平原县| 惠州市| 海门市| 珲春市| 泰兴市| 石阡县| 天长市| 渭源县| 缙云县| 孝昌县| 崇文区| 上饶县| 易门县| 华容县| 土默特右旗| 乌兰县| 忻州市| 海口市| 宝兴县| 台北县| 四川省| 永新县| 浦北县| 德阳市| 威海市| 莎车县| 赫章县| 多伦县| 西林县| 清河县| 柯坪县| 镇江市| 南岸区| 安平县| 肥东县| 肇庆市| 临澧县| 城口县|