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条。
复制代码代码如下:
dir d:\ -Recurse | Sort-Object -Descending length | Select-Object -First 10
这⼀步就不⽤解释了。
最终得到对象列表,为了输出好看,还可以在Select-Object的时候,控制⼀下输出部分属性,⽐如只输出Name和Length。所以最后可以得到如下结果:
复制代码代码如下:
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
< 59240120
KSbrowser_4.2. 48147320
WPS.4369. 45136112
44252624
sort命令排序WLAN_QualcommAtheros_Win7_64_VER1000 (40988233)
由此可以看出来,PowerShell在操作⽂件、磁盘等⽅⾯功能强⼤,使⽤尤其便捷。其中的排序功能、选择功能都⽤得让⼈感觉浑⾝舒爽,哈哈!洪哥觉得,有需要的朋友可以参照学习下。
关于PowerShell⼀句话查出D盘最⼤的10个⽂件,本⽂就介绍这么多,希望对您有所帮助,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论