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

[文本处理] 批处理如何获取文件大小?

本帖最后由 pcl_test 于 2016-9-8 19:56 编辑

当前目录下有多个文件,
例如:
1.xls
1.txt
1.doc
2.xls
2.txt
2.doc
批处理提取出.xls、.txt和.doc大小之和
输出结果:
1   100KB
2   200KB

  1. @echo off
  2. ::提取txt、doc、xls文件总大小
  3. for /f "delims=" %%a in ('dir /b *.txt *.doc *.xls') do set /a "s+=%%~za/1024"
  4. echo,%s%KB
  5. pause
复制代码

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. ::分别提取txt、doc、xls文件总大小
  3. for %%i in (txt doc xls) do (
  4. set s=0
  5. for /f "delims=" %%a in ('dir /b *.%%i 2^>nul') do set /a s+=%%~za/1024
  6. echo,!s!KB
  7. )
  8. )
  9. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::提取相同文件名的txt、doc、xls文件总大小
  4. for /f "delims=" %%a in ('dir /b *.txt *.doc *.xls') do (
  5. if not defined %%~na (
  6. set s=0
  7. for /f "delims=" %%b in ('dir /b "%%~na.*" ^|findstr /i "\.txt \.doc \.xls"') do set /a "s+=%%~zb/1024"
  8. echo,%%~na !s!KB
  9. set %%~na=def
  10. )
  11. )
  12. pause
复制代码

TOP

回复 4# pcl_test


    第三个%%~ZB应该是ZA是提取大小吧。
还有就是提取了名字 大小一直未0KB

TOP

回复 5# wang5185244
测试没有问题,请自检

TOP

回复 6# pcl_test

对于单文件大于2g的文件会出现
“无效数字。数字精确度限为 32 位。”

TOP

返回列表