是否有Windows命令行实用程序列出子目录中超过特定​​大小的最大文件?


Answers:


27
forfiles /P D:\ /M *.* /S /D +"01/17/2012"  /C "cmd /c if @fsize gtr 209715200 echo @path @fsize @fdate @ftime"

将扫描D:\及其子目录,查找上次修改日期大于“17-JAN-2012”且大小大于或等于200MB的所有文件,然后打印其详细信息。

forfiles包含在某些Windows服务器上,但默认情况下不包含在Windows XP上。您可以从http://www.microsoft.com/download/en/details.aspx?id=17657上的“Windows Server 2003资源工具包”下载中提取它(虽然它表示适用于Windows Server,但它在Win XP上运行没有问题)。


精湛 - 这就是我想要的(一旦我确定了英国17/01/2012的日期)。谢谢。
Umber Ferrule

6

这听起来像PowerShell的工作

得到-childitem

导航到相关目录,使用以下命令检查属性:

get-childitem | get-member

length和FullName看起来很有趣,例如:

get-childitem |ft fullname, length -auto

掌握了基础知识后,尝试使用where语句进行过滤。

get-childitem | where-object {$_.length -gt 10000} |ft fullname, length -auto

试验100000


使用Get-ChildItem
-recurse

3

UnxUtils的Linux实用程序端口包含Linux find命令。

您应该将find.exe重命名为其他名称,例如xfind.exe,因为find是Windows命令提示符中的内置函数。然后,您可以通过以下方式找到大于1000000字节的所有文件:

xfind目录-size +1000000 -print

这是Linux命令查找的文档,但我不知道它是如何在UnxUtils中实现的以及查找的版本。


我相信GnuWin32是最新的:gnuwin32.sourceforge.net ...加上总是Cygwin:cygwin.com
quack quixote 09年

@~ quack:你说得对,只是GnuWin32中的FileUtils软件包安装起来相当复杂,需要相当多的文件。
harrymc

很公平。我个人是cygwin用户。而且我倾向于选择最新的简单安装。但感谢你解释你的推理。
quack quixote 09年

2

拿命令控制台LE(我最近推荐了很多),一个免费替代cmd.exe,有​​很多额外的功能,有一个命令:PDIR

pdir /s /(fpn z) /[s10485760,]
  • /s 表示递归,从您要搜索的目录运行该命令。
  • /(fpn z) 是显示结果的格式,在这里: fullpathfullname size
  • /[s10485760,] 意味着大小= 10 MB或更大

1

cygwin实用程序的find命令可以做到这一点。满足您的要求

查找目录树中超过特定​​大小(例如10MB)的文件的完整路径。

这给出了结果:

find -size + 10M -type f -printf“%p%s \ n”

-size +10M为您提供了“对象” 做大超过10兆字节

-type f 只为您提供文件

-printf打印找到的文件,%p路径,%s大小(以字节为单位),\n是换行符。


1

我刚刚发现了命令行工具Disksum,它似乎与diruse类似,但提供了两种输出形式:

  • 按目录的文件计数排序(升序)
  • 按目录大小排序(升序)

1

我相信使用此解决方案更准确的描述:

http://sourceforge.net/projects/swissfileknife/files/下载命令行可执行文件sfk.exe

像这样使用它

skf.exe list -big

示例输出(缩写):

[listing 50 of 78 files by size:]
        3951 mens\noname_30.mht
        3996 mens\noname_14.mht
        3996 mens\noname_25.mht
        4060 mens\noname_24.mht
        4263 mens\noname_31.mht
        4701 mens\noname_1.mht
       14568 Thumbnail Restore.zip
       45056 netmeter.exe
     [...]
     12337752 rktools.exe
     16826024 sp35378.exe
     16926496 jre-6u30-windows-i586.exe
     19480227 SugarCE-6.2.4.zip
     21073936 vlc-1.1.11-win32.exe
     22083184 EasyPHP-5.3.8.1-setup.exe
     25517642 MPSOFTWARE.phpDesigner.v8.0.0.145-CRD.rar
     31085033 phpdesigner8usb.zip
     48835640 netbeans 7.exe
     58900704 ZendServer-CE-php-5.2.17-5.6.0-Windows_x86.exe    
     491538432 53400105.iso

如果您只想要前10个较大的文件,请使用:

skf.exe list -big=10

您可以按照以下说明进一步对其进行自定义:http//stahlworks.com/dev/index.php?tool = list


精彩的回答,我在这里引用了它; softwarerecs.stackexchange.com/questions/30824 / ...
DankyNanky

-2

我知道问题是关于命令行,但这个问题不断出现在谷歌,所以添加另一个简单的方法 - 通过资源管理器。

  1. 打开要在Windows资源管理器中查找大文件的位置(磁盘或文件夹)
  2. 在右上方的搜索框中键入“size:gigantic”(该框将自动建议语法和其他可能的选项)

问题是寻找命令行答案。
约翰

这是一个很好的有效回复。它不应该被低估。
zar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.