曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3009|回复: 0
打印 上一主题 下一主题

[实例.系统] 列出每个目录占用的空间

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-5-14 13:42:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个目录下会有子目录,子目录下也可能有子目录, dir 命令的 /s 选项可获取子目录信息大小信息,比如:


如上图所示,命令可以列出某个子目录下所包含的文件,并统计出其数目,以及这些文件总共的大小。需要注意的是,如果右键查看某个文件夹属性,会看到“大小”和“占用空间”的情况,“大小”是实际的大小,但“占用空间”则大于等于“大小”,它表示实际占用的硬盘空间,这根文件系统的存储格式有关(Windows 以 “簇” 为空间来管理,一个簇可以包含2,4,8,16,32,64个扇区,如果实际大小是 3 个扇区,那么占用的空间要以 4 个扇区来计算)。dir /s 给出的就是里头实际大小,而不是这个目录所占用的空间。

下面代码用来列出每个目录占用的实际大小:
  1. @echo off

  2. for /f "tokens=*" %%b in ('dir') do echo "%%b"|find "个文件">nul&&for /f "tokens=3*" %%c in ("%%b") do echo 当前目录 %%c %%d
  3. for /f %%a in ('dir/ad/s/b') do for /f "tokens=*" %%b in ('"dir %%a\"') do echo "%%b"|find "个文件">nul&&for /f "tokens=3*" %%c in ("%%b") do echo %%a %%c %%d

  4. pause
复制代码

token=3* 表示显示从第三列开始到最后的所有列的内容。

%%c, %%d 是使用 tokens 导致的额外变量名的分配,具体请参考《for 循环》。

第一条语句得出的是当前目录的大小。

第二条语句是罗列出所有子目录的大小。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 06:11 , Processed in 0.072355 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表