相关文章推荐
坚强的保温杯  ·  C++ inline内联函数详解·  1 年前    · 
讲道义的仙人掌  ·  c# - Custom ...·  1 年前    · 

因为工作中需要计算许多数据的大小,而有一些文件夹比较大,比较繁琐。所以计算文件夹大小花费的时间会比较长。可不可以通过批处理解决这个问题?

参考http://www.bathome.net/thread-8254-1-1.html的方法,给出如下代码:

@echo off&chcp 437>nul&setlocal enabledelayedexpansion
for /f "tokens=3* delims= " %%a in ('dir "C:\TmpTest" /a-d /s /-c ^| find /i "File"') do (
    set s=%%a %%b
echo %s%

首先转换为英文显示状态下,chcp 437,中文是chcp 936

这里使用了dir命令,获取最后一条文件个数和大小,试试上面的命令,如下

Total Files Listed:
33160 File(s) 5869618759 bytes

如果需要换算单位的话,考虑 set /a 会受到最大数值的限制 2^32 次方的大小,暂时没有想到好的解决方法。

已找到了方案,参考: 批处理怎样实现计算超大数、浮点数计算