html列出目录文件大小,Windows下显示目录大小及文件个数

这篇博客介绍了如何在Windows环境下使用批处理脚本来统计子目录的大小。作者通过dir/ad/b%1>1.txt命令获取子目录列表,接着用for循环遍历并统计每个子目录的大小,最后输出占用空间超过1GB的子目录信息。批处理方法虽然不如Linux下的du -sh*命令直观,但在特定场景下提供了便利。文章结尾作者表达了对Windows命令行功能的不满,并对比了Linux shell的便捷性。
摘要由CSDN通过智能技术生成

用批处理实现Windows下子目录大小统计功能

吴旻

泰岩网络工作室

统计当前目录下各文件夹的大小,在Linux下面比较简单,一个 du -sh * 命令就基本解决问题了。虽然在资源管理器是单击右键,然后选属性可以看到某个文件夹的大小,但当我想知道C:\windows目录下哪个子目录占用了1G以上的空间时,这个方法就显得太笨了,要一个一个点半天才能有结果。

本文提到的方法,是利用了 dir /s 这个命令,它可以对一个目录进行统计,并在最后给出综合的结果。核心的代码有三部分:

1、用 dir /ad /b %1 > 1.txt  将指定目录下的子目录保存到 1.txt 文件中,以备后用

2、使用 for 语句从 1.txt 文件中读出每一个子目录,再用 dir /s 将此子目录的结果保存到 2.txt 文件中。

3、从 2.txt 文件中读出最后一行,就是想要的那个子目录的统计结果。此处,我再次使用了 for 语句的功能,即逐行读出,但只显示最后一行。

其它部分代码,是配合整个批处理来使用的。把如下代码保存了一个批处理文件(如:lu.bat),就可以使用了

@echo off

IF [%1]==[] GOTO USAGE

ifNOT exist"%1"(ECHO"%1"path not exist & GOTO END)

:DIR_PATH

dir /ad /b %1 > 1.txt

setlocal enabledelayedexpansion

for/f"tokens=*"%%i in (1.txt)do(

rem    echo

dir /s"%1\%%i"|findstr 个文件 > 2.txt || echo. > 2.txt

remfor/f"eol=0 tokens=1,3 "%%j in (2.txt)doset ll=%%k 字节 %1\%%i  %%j 个文件

for/f"eol=0 tokens=1,3 "%%j in (2.txt)doset ll=%%k & set ll=!ll:~0,-9! M %1\%%i  %%j 个文件

echo  !ll!

rem    echo.

)

set total=

Endlocal

del 1.txt 2.txt

GOTO END

:USAGE

echo Usage: %0 dir_path

GOTO   END

:END

rem pause

===========================================================================

忍不住想吐槽下,windows操作系统虽然好用,但是并不适合研发人员,它的命令行(暂且只说dos, 虽然可以用vb, vbscript, 但是本人不太熟悉,写法上也不太适合做编程)实在是太弱了,想想linux下的shell,用起来还是挺方便的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值