PowerShell查找分區(qū)中最大文件的方法(查找文件并按大小排序)
本文介紹一個PowerShell命令,用于將某個目錄或磁盤(如D盤)下占用空間最大的前幾個文件。這個任務(wù)在其它編程語言中,可能要大段大段的代碼,而在PowerShell中,我們只需要一行。
當我們發(fā)現(xiàn)某個盤空間不足時,作為管理員,我們得要將該盤上的無用的文件做一些清理。面對這項工作,我們得要想哪些是無用的文件,哪些是占用空間比較大的文件。在實際操作過程中,我們不太可能花費大量的時間和精力去把所有的無用的文件都清除掉,所以,最佳的實踐是找出占用空間最大的一些文件,然后來判斷一下哪些是無用的。將這些占用空間大,且無用的文件清理了,磁盤空間不足的難題自然頓時就化解了。
好了,我們現(xiàn)在就來設(shè)想一下怎么找到一個目錄或磁盤下最大的文件。一個最簡單的思路是設(shè)置一個非常大的數(shù)組,然后遍歷目錄下的所有文件和子文件夾下的所有文件,將其名稱、路徑、占用空間大小等屬性保存到數(shù)組中。最后對數(shù)組進行排序,得到最大文件的倒序列表。懂開發(fā)的兄弟聽了后應(yīng)該能感受到這個問題中的難度和復(fù)雜性了??傊?,不簡單!
我們來看看PowerShell中如何解決這個問題。
第一步,獲取D盤下所有的文件的列表。這個很簡單,有dir(即Get-ChildItem)這個cmdlet可以實現(xiàn)。
第二步,對得到的列表,按文件大小進行逆序排列。
注意,這里使用管道將第一步得到的文件列表作為輸入?yún)?shù)給Sort-Object,然后Sort-Object再按照length(文件占用空間大小的屬性,這個屬性是第一步獲得的列表對象中的屬性,不是隨便想的)倒序排列(-Descending表示倒序)。
第三步,對排序后的列表,提取出前10條。
這一步就不用解釋了。
最終得到對象列表,為了輸出好看,還可以在Select-Object的時候,控制一下輸出部分屬性,比如只輸出Name和Length。所以最后可以得到如下結(jié)果:
Name Length
---- ------
cn_windows_7_ultimate_x64_dvd_x15-66... 3341268992
install.wim 2928372216
VS2010UltimTrial.iso 2446950400
Microsoft Office2007簡體中文完整版.RAR 626917327
boot.wim 214131351
QQ2013SP2.exe 59240120
KSbrowser_4.2.25.5498.exe 48147320
WPS.4369.19.552.exe 45136112
lbpack_pro.exe 44252624
WLAN_QualcommAtheros_Win7_64_VER1000... 40988233
由此可以看出來,PowerShell在操作文件、磁盤等方面功能強大,使用尤其便捷。其中的排序功能、選擇功能都用得讓人感覺渾身舒爽,哈哈!洪哥覺得,有需要的朋友可以參照學(xué)習(xí)下。
關(guān)于PowerShell一句話查找出D盤最大的10個文件,本文就介紹這么多,希望對您有所幫助,謝謝!
相關(guān)文章
Windows Powershell排序和分組管道結(jié)果
本文通過實例,詳細介紹了Powershell如何對管道結(jié)果進行排序和分組,非常的實用,有需要的朋友可以參考下2014-09-09Windows Powershell IF-ELSEIF-ELSE 語句
作為條件判斷,if語句是各大語言都在使用的,當然powershell也不例外,今天我們就來看下IF-ELSEIF-ELSE 語句2014-10-10PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)的函數(shù)傳參例子
這篇文章主要介紹了PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)例子也是使用的PSBoundParameters,但是有區(qū)別哦,,需要的朋友可以參考下2014-07-07