批处理文件返回文件夹大小

7

我在我的Vista机器上遇到了存储问题,需要找出占用大量空间的原因。

我想编写一个简单的批处理文件,返回C盘下的所有文件夹及其大小。

dir命令似乎无法返回文件夹大小。

不幸的是,我们没有管理员权限,无法安装第三方应用程序,并且我们组中的其他用户也需要这些信息。


不确定如何做到这一点,但您能否在原地运行应用程序? - ewanm89
只要我不需要管理员权限,就可以在原地运行应用程序。 - Paul Wall
1
Windirstat可以直接运行,但需要在拥有管理员权限的计算机上通过安装程序进行安装(只是因为安装程序要求这样做)。然后可以将exe文件复制到需要运行的位置并运行。 - ewanm89
还可以获得一个相当不错的文件大小可视化树。 - ewanm89
2个回答

7

我建议您查看这个帖子,以获取有关如何计算目录大小的线索:

批处理文件显示目录大小

或者您也可以使用以下命令:

dirsize:

@echo off
setLocal EnableDelayedExpansion
set /a value=0
set /a sum=0
FOR /R %1 %%I IN (*) DO (
set /a value=%%~zI/1024
set /a sum=!sum!+!value!
)
@echo %CD%:!sum! k

AllDirSize:

echo off
set WORKING_DIRECTORY=%cd%
    for /f "delims=" %%a in ('dir /a:D /D /B /S') do (  
            echo off
            cd %%a
            "%WORKING_DIRECTORY%"\dirsize "%%a"
            cd %WORKING_DIRECTORY%
) 

使用方法:ALLDIRSIZE > C:\temp\FileContainingFolderSizes.txt

以上内容摘自优秀的Richard Bishop测试论坛:http://www.bish.co.uk/forum/index.php?topic=58.0


@PaulWall - 很高兴它对你有用。但是你能解释一下你是如何避免这个错误的吗? - kurp

5

是的,我发布了TreeSize的链接,然后想起来还有所有基本Unix实用程序的不错的端口! - MK.
我通常想要查找当前目录下文件夹(及其所有内容)的大小。在Windows上,我使用了find . -maxdepth 1 -exec du -sh {} +命令。请注意确保您使用的是UnxUtils find(或gnuwin32),而不是内置的Windows find命令(运行which find命令将告诉您正在使用哪个)。 - User

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接