[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何计算文件夹中所有文件的大小

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

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

TOP

  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
复制代码

TOP

http://www.bathome.net/viewthread.php?tid=25682
简单说,fso.GetFolder(文件夹).Size 就是文件夹总体积

TOP

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

TOP

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

TOP

返回列表