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

我最近电脑不知道为什么磁盘空间会慢慢的变小,而且过一段时间之后,又会有两三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

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

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

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

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

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

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

参考地址:http://www.bathome.net/thread-37971-1-12.html

时间: 2025-01-01 12:32:23

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

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

获取文件夹内某一类文件的数量和名称

&1 获取某类文件数量 dir /B /A-D .\*.jpg | find /V /C " ">COUNTNUM.txt 解释 dir /B /A-D .\*.jpg   查找当前文件夹(.\)下的jpg格式文件(.jpg),结果会输出当前文件夹下的jpg文件列表:(/B)只显示文件名字,不显示摘要:(/A-D)表示只查找文件,不查找文件夹. | 是管道命令:管道符号的作用是将 | 之前命令输出重定向到 | 之后的命令作为输入.此处就是将dir的输出作为find的输入.

不管文件夹内有没有文件都删除掉这个文件夹的方法

1 <?php 2 //删除文件夹 3 //给我一个文件夹,删掉 4 5 ShanChu("./0307"); 6 function ShanChu($fname) 7 { 8 if(is_dir($fname)) 9 { 10 //在删除文件夹之前先把文件夹里面所有文件都删除调 11 $dir = opendir($fname); 12 while($dname = readdir($dir)) 13 { 14 if($dname!="." &&am

Python批量修改文件夹内所有json文件中部分内容

#coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filenames=os.listdir(filedir) #遍历文件名 for filename in filenames: filepath = filedir+'/'+filename print filepath after = [] # 打开文件取出数据并修改,然后存入变量 with open(fil

linux删除文件夹内指定名文件命令 替换文件内容

find ./test -name a.txt -exec rm -f {} \; sed -i "s#coban.com#bafangjie.cn#ig" `grep coban.com -i -rl *` sed -i "s#模板#更多模板#g" `grep 模板 -rl *` sed -i "s#href=\"\#\"#href=\"http://www.bafangjie.cn/\"#g" `gre

将根文件夹内的所有子文件夹内的文件进行按比例分类。。。。。by Matlab

之所以写这段代码,是为了分类文件夹内的所有文件,因为做训练用的数据真的太多了,所以,写了一段Matlab,让其自动按比例分类. main: 1 %文件夹路径,不同设备,读取字符不同 2 clear all 3 clc 4 5 %% 选择要分的文件夹路径/存放路径/文件夹名称 6 fprintf('选择Train文件夹\r'); 7 pause(2) 8 path=uigetdir('选择待分析的文件夹'); 9 if path ==0 10 fprintf('取消选择文件夹') 11 end 1

如何让文件夹内所有文件名显示在一个Excel文件

如何让文件夹内所有文件名显示在一个Excel文件 我们如何才能做到,让某个文件夹内的所有文件的名称,自动生成一个Excel文件或TXT记事本文件: 意思就是说,文件夹内的所有的文件的名称,自动显示在Excel单元格中或记事本里面. 要想实现这样的功能,非常简单,仅仅使用一个非常简单的DOS命令,就实现了! 方法/步骤 一.所需DOS命令 dir [drive:][path] /b > [drive:][path]filename 二.应用实例 如下图,在D盘中,有一个名称为“TQIPC”的文件夹

C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

1.实现把指定文件夹下的所有文件复制到指定路径下 1 public static void copyFiles(string path) { 2 DirectoryInfo dir = new DirectoryInfo(path); 3 if (!dir.Exists) 4 return; //获得指定文件夹内的所有的子目录信息 5 DirectoryInfo[] dirs = dir.GetDirectories(); //获得指定文件夹内所有的文件信息 6 FileInfo[] files

【Java】移动文件夹及其所有子文件与子文件夹

在Java移动文件夹及其所有子文件与子文件夹可以有如下的一段简单的方法来说明: public static void moveFolder(String oldPath, String newPath) { //先复制文件 copyFolder(oldPath, newPath); //则删除源文件,以免复制的时候错乱 deleteDir(new File(oldPath)); } 不应该直接剪切文件,防止在剪切的时候出错,导致这样那样的问题. 在Java复制文件夹及其所有子文件与子文件夹,在<