批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT

我最近电脑不知道为什么磁盘空间会慢慢的变小,而且过一段时间之后,又会有两三GB的空间被释放出来,使用我想监控下,看看是那个文件夹下产生的文件来占用我的存储空间,我想按层监视,最终找出原因。

从网上找个命令行显示指定文件夹目录的大小的批处理程序,但是发现并不太尽人意,总感觉不是很适合我的使用;

第一个程序,可以显示某个文件夹下的文件大小,但是我想按层显示,却不能满足我的要求,程序如下:

@echo off
echo.
set /p dirPath=please input folder path:
set /a s=1024*1024*1024
for /f "tokens=3 delims= " %%i in ('dir /s /a /-c "%dirPath%" ^|findstr 个文件') do (set z=%%i)
echo.
echo 文件夹:%dirPath%
set d=bit
if %z% gtr 1024 set /a "z>>=10"&set d=KB
if %z% gtr 1024 set /a "z>>=10"&set d=MB
if %z% gtr 1024 set /a "z>>=10"&set d=GB

echo 的总大小是:%z% %d%&echo.
if %z% LSS %s% echo 该文件夹内容小于1G
pause>nul

第二个程序的,可以显示当前文件夹下的层级目录,但没有循环每一次下文件夹的大小,程序如下:

@echo off
setlocal enabledelayedexpansion
(for /d %%a in (C:\KuGou\*) do (
  set/a n=z=0
  pushd "%%a"
  for %%b in (*.*.) do (
    set/a n+=1,z+=%%~zb
  )
  set/a "z>>=20"
  popd
  echo;%%a [!n!个!z!M]
))>统计结果.txt
pause

通过上面的两个程序,我整合了一下,打算合成一个程序,应该就和我需要的程序差不多了,说干就干,下面看看我的程序:

@echo off
setlocal enabledelayedexpansion
echo.
set /p dirPath=please input folder path:
echo %dirPath%
echo.
for /d %%a in (%dirPath%\*) do (
  set/a zz=0
  for /f "tokens=3 delims= " %%t in ('dir /s /a /-c "%%a" ^|findstr 个文件') do (
  set zz=%%t
  )
set d=bit
if !zz! GEQ 1024 set /a "z1=!zz!>>10"&set d=KB
if !z1! GEQ 1024 set /a "z2=!z1!>>10"&set d=KB
if !z2! GEQ 1024 set /a "z3=!z2!>>10"&set d=KB
echo 文件夹:%%a ,大小是:!z3!GB = !z2!MB = !z1!!d!
)
for /f "tokens=1-4 delims= " %%i in ('dir /a /-c %dirPath% ^|findstr 个文件') do (
  set/a ss=%%k
  set/a ss>>=10,d=bit

  if !ss! GEQ 1024 set /a "s1=!ss!>>10"&set d=KB
  if !s1! GEQ 1024 set /a "s2=!s1!>>10"&set d=KB
  if !s2! GEQ 1024 set /a "s3=!s2!>>10"&set d=KB
  echo 在"%dirPath%"根目录下有 %%i %%j ,总共大小为:!s3!GB = !s2!MB = !s1!!d!
  )

pause

代码四:实现执行后统计文件夹内包含所有文件及所有子文件夹下的文件,以及子文件夹下的子文件夹下的文件,以及子文件夹下的子文件夹下的子文件夹下的文件

@echo off
setlocal enabledelayedexpansion
(for /f “delims=” %%i in ('dir /s/b/l/ad') do (
cd "%%~fsi"
set/a a=0,n=0
for /f "delims=" %%a in ('dir /b/l/aa') do (
set/a a+=1,n+=%%~za 2>nul
)
set/a n/=1048576
echo.%%~fi : !a! : !n!MB
)) >统计结果.txt
pause

MB不支持小数位,文件过小会显示为零,可以删除

set/a n/=1048576

并删除MB改为字节。

或者使用KB,修改为

set/a n/=1024
echo.%%~fi : !a! : !n!KB

代码5:用纯批处理在数字计算上受限制,这个问题用批处理结合awk倒是简单:
需拖拽执行

# & cls & (for /f "delims=" %%a in ('dir/a-d/b/s %1') do @echo %%~za) | gawk -v path=%~n1 -f %0 >con & pause & exit
{sum+=$0}
END{
	printf "%s文件夹总大小为: \n%.2f byte\n%.2f MB\n%.2f GB\n",path,sum,sum/1024/1024,sum/1024/1024/1024
}

gawk 4.1.0 下载地址:http://www.jb51.net/softs/515570.html

程序也不多解释,大家一看就明白,只是把别人的东西组合在一起,调用方法:

一:双击执行,根据提示输入您需要建设的文件夹路径。

二:开始--运行--cmd,然后找到存放bat文件的地方,直接输入bat文件名就可以执行。

三:也可以直接输出到文件,例如:C:\>f3.bat>111.txt回车之后就只能看到光标一闪一闪的,这时你直接输入文件夹路径就可以了。

  说明:如果采用输出到文件的形式,最后把代码最后的pause行(暂停代码)删除,这样当程序执行完后会自动退出,不会一直停留在程序里。

以上两个程序的出自于“批处理之家”,地址在下面方便以后追踪以及查阅

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索批处理
, 统计
文件大小
bat批处理 遍历文件夹、bat批处理脚本命令、bat批处理、bat批处理文件、bat批处理教程,以便于您获取更多的相关知识。

时间: 2024-08-28 05:58:05

批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT的相关文章

PHP读取文件夹内有多少个文件

文件夹 PHP读取一个文件夹内有多少个文件的函数.比如有一个Pic文件夹,里面有100张图片,下面的函数可以得到他的总数100<?php$dir = './pic';$handle = opendir($dir);$i = 0;while(false !== $file=(readdir($handle))){    if($file !== '.' || $file != '..')    {        $i++;    }}closedir($handle);echo $i;?>

怎么把一个文件夹里多个文件名相同的文件移动到一个文件夹内并新建文件夹以该文件名命名文件夹名称

问题描述 怎么把一个文件夹里多个文件名相同的文件移动到一个文件夹内并新建文件夹以该文件名命名文件夹名称 怎么把一个文件夹里多个文件名相同的文件移动到一个文件夹内并新建文件夹以该文件名命名文件夹名称 解决方案 第一,你要在什么环境下实现 第二,举个例子,更好的说明你的问题 第三,去找度娘 解决方案二: 刚开始看见你的问题,头有点大,像是要口令,你用什么语言,完成这样事情啊 解决方案三: win里好像不行吧,百度都解决不了 解决方案四: 用Directory.GetFiles遍历文件夹找到文件,用F

android-Android:res/xml文件夹内的xml文件在运行时可以修改吗?

问题描述 Android:res/xml文件夹内的xml文件在运行时可以修改吗? 我想在程序运行时,修改该Xml文件android:requirdDeviveUnlock的值为true. 但是,系统提供的getResources().getXml()方法返回的是XmlResourceParser类型,只能用于解析,没法修改该值. 解决方案 http://stackoverflow.com/questions/7162285/how-to-edit-xml-in-android-and-save

c语言-Linux C编程:将Linux根目录下指定的一个文件夹内的所以文件按创建时间排序

问题描述 Linux C编程:将Linux根目录下指定的一个文件夹内的所以文件按创建时间排序 Linux C编程:将Linux根目录下指定的一个文件夹内的所以文件按创建时间排序,并删除创建时间最靠前的100个文件.请大神赐教代码,非常非常感谢!! 解决方案 http://blog.csdn.net/kesaihao862/article/details/6657399

WordPress如何在uploads文件夹内创建子文件夹

直接下面代码放到主题中的functions.php文件中就可以正常使用 uploads文件夹中自动地创建一个自定义文件夹代码  代码如下 复制代码 function myplugin_activate() {     $upload = wp_upload_dir();     $upload_dir = $upload['basedir'];     $upload_dir = $upload_dir . '/mypluginfiles';//这里写文件夹名称     if (! is_dir

如何把相机SD卡内的图片自动下载到计算机本地的文件夹内

问题描述 如何把相机SD卡内的图片自动下载到计算机本地的文件夹内 硬件需求,一台单反,一台笔记本,当单反与笔记本用WiFi连接起来后,使单反SD卡中的图片自动下载到计算机指定的文件夹内,希望可以有代码,谢谢各位大神,急- 解决方案 用不着写程序,一个批处理就行了http://jingyan.baidu.com/article/3c48dd3472d07ee10be358fb.html 解决方案二: 相机与电脑连接后,相机中的SD卡应该会映射为电脑上的一个盘符.在电脑上写一个检测盘符产生的程序,检

求一个递归修改文件夹内全部子文件和文件夹名的程序(batch或者perl)

问题描述 求一个递归修改文件夹内全部子文件和文件夹名的程序(batch或者perl) 需求是这样的: 递归修改文件夹中所有名字带"aaa"字符串的 文件夹名或者文件名改成 bbb 例如: 01_aaa |_01_aaa_01 |_nbdaaa_01.txt |_nbcaaa_02.txt |_02_aaa_01 改成 01_bbb |_01_bbb_01 |_nbdbbb_01.txt |_nbcbbb_02.txt |_02_bbb_01 解决方案 http://blog.163.c

同文件夹内文本搜索器(vbs)

<HTML><HEAD><TITLE>同文件夹内文本搜索器(vbs)</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <SCRIPT language=vbscript id=clientEventHandlersVBS> <!-- Dim fso, f, f1, fc,fn,s,uf1,ufn Sub B1

python压缩文件夹内所有文件为zip文件的方法

本文实例讲述了python压缩文件夹内所有文件为zip文件的方法.分享给大家供大家参考.具体如下: 用这段代码可以用来打包自己的文件夹为zip,我就用这段代码来备份 ? 1 2 3 4 5 6 7 import zipfile z = zipfile.ZipFile('my-archive.zip', 'w', zipfile.ZIP_DEFLATED) startdir = "/home/johnf" for dirpath, dirnames, filenames in os.wa