Board logo

标题: [文本处理] 批处理如何获取文件大小? [打印本页]

作者: wang5185244    时间: 2015-4-11 10:57     标题: 批处理如何获取文件大小?

本帖最后由 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
作者: pcl_test    时间: 2015-4-11 12:01

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

作者: pcl_test    时间: 2015-4-11 12:01

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

作者: pcl_test    时间: 2015-4-11 13:32

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

作者: wang5185244    时间: 2015-4-13 22:00

回复 4# pcl_test


    第三个%%~ZB应该是ZA是提取大小吧。
还有就是提取了名字 大小一直未0KB
作者: pcl_test    时间: 2015-4-13 22:11

回复 5# wang5185244
测试没有问题,请自检
作者: ctgwglzc    时间: 2021-12-8 19:10

回复 6# pcl_test

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




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