有谁知道一个免费的命令行工具或脚本,计算包括所有子目录的目录的大小?
它需要与Windows 7兼容,使用硬链接和连接,并妥善处理拒绝访问某些子文件夹(即继续在这种情况下)的访问。
我找不到任何东西,正想着写我自己的工具。
更新:
我正在寻找的东西来分析(许多)漫游用户configuration文件存储在文件服务器上。 完美的工具可以很容易find最大的configuration文件目录或那些文件最多的目录。
杜Sysinternals杜可能是你在找什么。 它是微软免费的,它基本上是* ix du的基本版本。 它通过报告文件不存在来处理路口和被拒绝的权限。
http://technet.microsoft.com/en-us/sysinternals/bb896651
Du v1.34 - report directory disk usage Copyright (C) 2005-2009 Mark Russinovich Sysinternals - www.sysinternals.com usage: du [[-v] [-l <levels>] | [-n]] [-q] <directory> -l Specify subdirectory depth of information (default is all levels) -n Do not recurse. -q Quiet (no banner). -u Count only unique file occurences. -v Show size (in KB) of intermediate directories. c:\sysinternals>du c:\sysinternals Du v1.34 - report directory disk usage Copyright (C) 2005-2009 Mark Russinovich Sysinternals - www.sysinternals.com Files: 101 Directories: 0 Size: 32,798,999 bytes Size on disk: 32,798,999 bytes
使用robocopy和/ l会做到这一点,忽略你无法访问的东西,而且/ B甚至会尝试在后台模式下运行,这可能会让你访问你,否则将不会有。
/ L ::仅列表 – 不要复制,时间戳或删除任何文件。
/ XJ :: eXclude连接点。 (通常默认包含)。
有没有什么具体的你的意思是“优雅地处理拒绝访问某个子文件夹”?
/编辑 – 现在你已经问了一个全新的问题,我会用其他答案来淹没你:
为什么你需要在Windows 7上运行? 在服务器上运行它。
你如何看待这个使用? Crystal Reports可以使用文件系统作为报告源,并且可以按一个报告中的大小进行分组,也可以按其他文件中的文件数进行分组。 它需要有历史吗? 你可以使用像RRDTool这样的东西来运行diruse在父目录中的每个文件夹或你保留你的homedirs的目录。 然后你有漂亮漂亮的图表漂亮漂亮的网页。
对于交互式使用,我喜欢WinDirStat,但有些人喜欢TreeSize Pro。
这是如何配合你的需要,这可以重新分配? 您是否在为其他ITpipe理员构build和销售pipe理产品? 如果只是为了你和你的员工,那不是“重新分配”。
Cygwin (用于Windows的POSIX仿真层)的全默认安装包括来自GNU核心实用程序集合的du实用程序 ,它完全是硬链接和联结点感知。 我相信Cygwin(并因此du )将交接点视为软链接。
你真的应该看看http://foldersize.codeplex.com/releases?ReleaseName=FolderSize.Win32.1.0.7.0它岩! 简单的graphics方式,看看谁在咀嚼什么空间。

你有没有看过微软工具diruse ? 这是一个命令行工具,正是你正在寻找的东西。 它是Windows 2000和2003的服务器工具的一部分,但仍可供下载: Microsoft Diruse TechNet文章 。
我不知道的唯一的事情是如何处理硬链接和交界点。 这可能是值得尝试的。
TechNet文章中的示例:
diruse /* /m \\shared\data Size (mb) Files Directory 248.60 3739 SUB-TOTAL: \\SHARED\DATA\Admin 31.27 36 SUB-TOTAL: \\SHARED\DATA\Common 1448.14 23654 SUB-TOTAL: \\SHARED\DATA\ConsultServ 107.64 750 SUB-TOTAL: \\SHARED\DATA\CorpServ 1053.28 6145 SUB-TOTAL: \\SHARED\DATA\Design 147.11 258 SUB-TOTAL: \\SHARED\DATA\Engrg 70.56 745 SUB-TOTAL: \\SHARED\DATA\Finance 18.78 1188 SUB-TOTAL: \\SHARED\DATA\Hardware 12.18 50 SUB-TOTAL: \\SHARED\DATA\HR 2.22 23 SUB-TOTAL: \\SHARED\DATA\InfoTech 5.44 46 SUB-TOTAL: \\SHARED\DATA\Legal 18.53 56 SUB-TOTAL: \\SHARED\DATA\ProdDev 470.43 2016 SUB-TOTAL: \\SHARED\DATA\ProdMktg 107.92 1445 SUB-TOTAL: \\SHARED\DATA\Research 31.10 43 SUB-TOTAL: \\SHARED\DATA\Sales 9.98 14 SUB-TOTAL: \\SHARED\DATA\TechSupp 114.82 1269 SUB-TOTAL: \\SHARED\DATA\Training 3898.00 41477 TOTAL
服务器故障可能会有点低调,但Tree Size Free( http://www.jam-software.com/treesize_free/ )可以很好地实现这一点,特别是如果您只是尝试一次性使用。 专业版有很多很好的function,我用于持续维护。
我build议WinDirStat 。
今天,我必须检查某些目录消耗了多less空间,并发现其中一个大量使用硬链接(这可能会导致某些文件在总和中不止一次被考虑)。
你可以看到WinDirStat的winsxs目录显示14,9GB。 这14,9GB等于什么数量(见前面的回答)作为size返回(如果你把15.620.679.650除以(1024 * 1024 * 1024)你得到一个四舍五入的14,9)