本文介绍一个PowerShell命令,用于将某个目录或磁盘(如D盘)下占用空间最大的前几个文件。这个任务在其它编程语言中,可能要大段大段的代码,而在PowerShell中,我们只需要一行。
当我们发现某个盘空间不足时,作为管理员,我们得要将该盘上的无用的文件做一些清理。面对这项工作,我们得要想哪些是无用的文件,哪些是占用空间比较大的文件。在实际操作过程中,我们不太可能花费大量的时间和精力去把所有的无用的文件都清除掉,所以,最佳的实践是找出占用空间最大的一些文件,然后来判断一下哪些是无用的。将这些占用空间大,且无用的文件清理了,磁盘空间不足的难题自然顿时就化解了。
好了,我们现在就来设想一下怎么找到一个目录或磁盘下最大的文件。一个最简单的思路是设置一个非常大的数组,然后遍历目录下的所有文件和子文件夹下的所有文件,将其名称、路径、占用空间大小等属性保存到数组中。最后对数组进行排序,得到最大文件的倒序列表。懂开发的兄弟听了后应该能感受到这个问题中的难度和复杂性了。总之,不简单!
PS C:\Users\splaybow> dir d:\ -Recurse | Sort-Object -Descending length | select-object name,length -First 10
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