华阴市住房和城乡建设局网站,做礼品贸易好的网站,免费推广平台有哪些软件,seo关键词推广话术From: http://blog.csdn.net/wmnothing/article/details/6590376 用批处理实现Windows下子目录大小统计功能
吴旻
泰岩网络工作室 统计当前目录下各文件夹的大小#xff0c;在Linux下面比较简单#xff0c;一个 du -sh * 命令就基本解决问题了。虽然在资源管理器是单击右键…From: http://blog.csdn.net/wmnothing/article/details/6590376 用批处理实现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就可以使用了 [cpp] view plaincopyprint? echo off IF [%1][] GOTO USAGE if NOT 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 rem for /f eol0 tokens1,3 %%j in (2.txt) do set ll%%k 字节 %1\%%i %%j 个文件 for /f eol0 tokens1,3 %%j in (2.txt) do set 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用起来还是挺方便的