标题: [文件操作] 批处理如何计算文件夹中所有文件的大小 [打印本页]
作者: freesoft00 时间: 2015-5-25 22:57 标题: 批处理如何计算文件夹中所有文件的大小
批处理如何计算文件夹中的所有文件的大小之和(包括子目录),就是想复制一个文件夹中的所有文件到一个分区中,需要先判断一下这个文件夹中搜索文件的大小,然后和目标分区的剩余空间做一个比对,如果能放下就复制过去。最好能在批处理中显示大小是MB
作者: freesoft00 时间: 2015-5-25 23:03
大小的计算上不是要求太精确,如果文件夹中的小文件比对多不好计算的,也可以在批处理中计算大小的时候忽略掉比如小于100KB或者更大的值
作者: terse 时间: 2015-5-26 00:26
- @echo off
- set "ph=c:\windows"
- for /f "tokens=3" %%i in ('dir /a-d /s/-c "%ph%" 2^>nul^|findstr /iec:" 字节"') do set n=%%i
- set /a "s=%n:~,-3%/1024"
- if %s% geq 1 set /a size=%s%%n:~-3%/1024"
- echo %size% MB
- 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 |