powershell实例之查找分区中最大文件、查找文件并按大小排序

发布时间:2020-09-30编辑:脚本学堂
本文介绍了powershell查找分区中最大文件的方法,如何查找文件并按占用空间排序?需要的朋友参考下。

一个powershell命令,用于将某个目录或磁盘(如d盘)下占用空间最大的前几个文件。
这个任务在其它编程语言中,可能要大段大段的代码,而在powershell中,只需要一行。
当发现某个盘空间不足时,作为管理员,得要将该盘上的无用的文件做一些清理。

面对这项工作,要想哪些是无用的文件,哪些是占用空间比较大的文件。在实际操作过程中,不太可能花费大量的时间和精力去把所有的无用的文件都清除掉,所以,最佳的实践是找出占用空间最大的一些文件,然后来判断一下哪些是无用的。将这些占用空间大,且无用的文件清理了,磁盘空间不足的难题自然顿时就化解了。

怎么找到一个目录或磁盘下最大的文件?

一个最简单的思路是设置一个非常大的数组,然后遍历目录下的所有文件和子文件夹下的所有文件,将其名称、路径、占用空间大小等属性保存到数组中。
最后,对数组进行排序,得到最大文件的倒序列表。

来看看PowerShell中如何解决这个问题。
第一步,获取D盘下所有的文件的列表。这个很简单,有dir(即Get-ChildItem)这个cmdlet可以实现。
 

复制代码 代码示例:
dir d: -Recurse

第二步,对得到的列表,按文件大小进行逆序排列。
 

复制代码 代码示例:
dir d: -Recurse | Sort-Object -Descending length

注意,这里使用管道将第一步得到的文件列表作为输入参数给Sort-Object,然后Sort-Object再按照length(文件占用空间大小的属性,这个属性是第一步获得的列表对象中的属性,不是随便想的)倒序排列(-Descending表示倒序)。

第三步,对排序后的列表,提取出前10条。(www.jb200.com 脚本学堂)
 

复制代码 代码示例:
dir d: -Recurse | Sort-Object -Descending length | Select-Object -First 10

这一步就不用解释了。
最终得到对象列表,为了输出好看,还可以在Select-Object的时候,控制一下输出部分属性,比如只输出Name和Length。

结果:
 

PS C:Userssplaybow> 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

由此可以看出来,PowerShell在操作文件、磁盘等方面功能强大,使用尤其便捷。
其中的排序功能、选择功能都用得让人感觉浑身舒爽,好好学习powershell吧,它真的好强大。