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

显示GB就有点麻烦了,2G以下文件可以算术计算,2G以上只能字符串截取方法来计算了。
问一:是否都是GB级的文件?
问二:是否需要保留小数点?几位?

TOP

GB级别显示2.31GB这样的数字;MB级别显示23MB这样的数字;MB以下显示0MB
  1. @echo oFF
  2. for /f "delims=" %%a in ('dir /a-d/s/b') do (
  3. call :calc_size %%~za size
  4. setlocal enabledelayedexpansion
  5. echo;%%a !size!
  6. endlocal
  7. )
  8. pause&exit
  9. :calc_size
  10. setlocal&set "var=%1"
  11. set "var=%var:~,-6%"
  12. if not "%var%"=="" set/a "GB=%var%>>10"&set/a "MB=%var%%%(1<<10)"
  13. if "%MB%"=="" set "var=0 MB"&goto:end
  14. if "%GB%"=="0" set "var=%MB% MB"&goto:end
  15. if "%MB:~1%"=="" set "MB=0%MB%"
  16. if "%MB:~2%"=="" set "MB=0%MB%"
  17. set "var=%GB%.%MB:~,2% GB"
  18. :end
  19. endlocal&set "%2=%var%"&goto:eof
复制代码

TOP

返回列表