Board logo

标题: [文件操作] 批处理如何计算文件夹中所有文件的大小 [打印本页]

作者: freesoft00    时间: 2015-5-25 22:57     标题: 批处理如何计算文件夹中所有文件的大小

批处理如何计算文件夹中的所有文件的大小之和(包括子目录),就是想复制一个文件夹中的所有文件到一个分区中,需要先判断一下这个文件夹中搜索文件的大小,然后和目标分区的剩余空间做一个比对,如果能放下就复制过去。最好能在批处理中显示大小是MB
作者: freesoft00    时间: 2015-5-25 23:03

大小的计算上不是要求太精确,如果文件夹中的小文件比对多不好计算的,也可以在批处理中计算大小的时候忽略掉比如小于100KB或者更大的值
作者: terse    时间: 2015-5-26 00:26

  1. @echo off
  2. set "ph=c:\windows"
  3. for /f "tokens=3" %%i in ('dir /a-d /s/-c "%ph%" 2^>nul^|findstr /iec:" 字节"') do set n=%%i
  4. set /a "s=%n:~,-3%/1024"
  5. if %s% geq 1 set /a size=%s%%n:~-3%/1024"
  6. echo %size% MB
  7. pause
复制代码

作者: CrLf    时间: 2015-5-26 00:45

http://www.bathome.net/viewthread.php?tid=25682
简单说,fso.GetFolder(文件夹).Size 就是文件夹总体积
作者: freesoft00    时间: 2015-5-26 22:23

回复 4# CrLf
分区的剩余空间如何列出来,我看到的wmic logicaldisk where drivetype=3 get deviceid,freespace这个比较简单。
但是如何换算成大小为MB而不是字节。
之后我输入一个盘符,比如输入D盘把,用需要复制文件综合的体积和这个分区的剩余空间比较,如果能存放下就继续复制的动作,如果不能提示再选一个盘符。
作者: freesoft00    时间: 2015-5-26 22:51

除的时候小数点后面的可以省略,粗略计算一下大小就可以,要求不是太精确。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2