PowerShell查找分区中最大文件的方法(查找文件并按大小排序)

 更新时间:2014年08月01日 10:06:41   作者:洪哥  
这篇文章主要介绍了PowerShell查找分区中最大文件的方法,查找文件并按占用空间排序,并用命令参数只输出比如10条,这样就可以快速找出一个目录、一个分区下的N个最大的文件,需要的朋友可以参考下

本文介绍一个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
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一句话查找出D盘最大的10个文件,本文就介绍这么多,希望对您有所帮助,谢谢!

相关文章

  • Powershell比较两个文件夹的不同

    Powershell比较两个文件夹的不同

    这篇文章主要介绍了Powershell比较两个文件夹的不同,这在一些对比文件不同的场景下非常有用,本文直接给出实例代码,需要的朋友可以参考下
    2015-04-04
  • 使用PowerShell获取Trustedinstaller权限的问题

    使用PowerShell获取Trustedinstaller权限的问题

    这篇文章主要介绍了使用PowerShell获取Trustedinstaller权限,获取到 Trustedinstaller 权限,就可以通过一些命令来修改系统文件了,本文给大家详细讲解,需要的朋友可以参考下
    2023-01-01
  • PowerShell小技巧之读取Windows产品密钥

    PowerShell小技巧之读取Windows产品密钥

    这篇文章主要给大家分享一段使用PowerShell读取Windows产品密钥的小技巧,非常的简单实用,有需要的朋友可以参考下。
    2014-10-10
  • Powershell小技巧之从文件获取系统日志

    Powershell小技巧之从文件获取系统日志

    事件日志对于系统管理员的重要性自不待言,而基于图形界面的事件查看器毫无疑问是我们进行日志管理的首选工具,但绝不是最快捷的工具。其实,PowerShell提供了一种更简单的方式,利用它我们不仅可访问当前系统的事件日志,而且还可对数据进行排序、格式化等等。
    2014-10-10
  • PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算

    PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算

    由于监控及报告需要,要统计性能计数器每天数值情况,确认数据库服务器的运行状况。若打开计数器填写,比较麻烦,现在统计用 powershell 来读取计数器的值
    2016-11-11
  • PowerShell中使用Get-EventLog读取、筛选系统日志的例子

    PowerShell中使用Get-EventLog读取、筛选系统日志的例子

    这篇文章主要介绍了PowerShell中使用Get-EventLog读取、筛选系统日志的例子,比如按日志名称、日志类型、时间的技巧,需要的朋友可以参考下
    2014-08-08
  • Powershell脚本的4种执行权限介绍

    Powershell脚本的4种执行权限介绍

    这篇文章主要介绍了Powershell脚本的4种执行权限介绍,Windows默认不允许任何脚本运行,你可以使用"Set-ExecutionPolicy"cmdlet来改变的你PowerShell环境,共有4种运行权限,需要的朋友可以参考下
    2015-06-06
  • PowerShell编程中的一些命名规则参考

    PowerShell编程中的一些命名规则参考

    这篇文章主要介绍了PowerShell编程中的一些命名规则参考,PowerShell编程中的最佳实践(Best Practices),需要的朋友可以参考下
    2014-08-08
  • PowerShell获取当前进程PID的小技巧

    PowerShell获取当前进程PID的小技巧

    这篇文章主要介绍了PowerShell获取当前进程PID的小技巧,直接使用一个全局变量$pid即可获取当前进程的PID,需要的朋友可以参考下
    2014-08-08
  • Windows Powershell Switch 循环

    Windows Powershell Switch 循环

    这篇文章主要介绍了Windows Powershell Switch 循环以及PowerShell中数组可以与switch语句结合,产生意想不到的效果。
    2014-10-10

最新评论