[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. function HumanSize(size)
  2.     Dim Units, Gates, SizeStr
  3.     Units = Array("Byte", "KB", "MB", "GB", "TB")
  4.     Gates = Array(1, 1024, 1024^2, 1024^3, 1024^4)
  5.     SizeStr = "0Byte"
  6.     for i=UBound(Units) to 0 Step -1
  7.         if size>=Gates(i) then
  8.             SizeStr = FormatNumber(Size/Gates(i), 2) & Units(i)
  9.             exit for
  10.         end if
  11.     next
  12. HumanSize = SizeStr
  13. end function
  14. 'example
  15. set fso = CreateObject("Scripting.FileSystemObject")
  16. Size = fso.GetFolder(".").Size
  17. WScript.Echo Size & " = " & HumanSize(Size)
复制代码
1

评分人数

    • batman: 乐于助人PB + 2 技术 + 1

TOP

VBS的函数真不省心,默认会省略纯小数(整数部分为0的小数)小数点前面的0,这虽然是合法的小数表示法,但不符合人的习惯。Round函数没有选项改变这种行为,FormatNumber函数可以指定。但FormatNumber不爽的是对纯整数也要添加指定个数的小数位,没有选项可以设置不要添加。

FormatNumber(Size/Gates(i), 2, -1, , 0)

TOP

返回列表