找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23392|回复: 2

[数值计算] [已解决]批处理如何以以MB和GB为单位转换内存和硬盘的容量大小?

[复制链接]
发表于 2011-6-4 12:31:50 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-17 20:11 编辑

請教批處理前輩及大哥們

小弟想求得實體內存計算成(MB)以及磁碟大小計算成(GB)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims==" %%a in ('wmic path win32_physicalmemory get banklabel^,capacity /value 2^>nul') do (
  4.         if /i "%%a"=="banklabel" set "banklabel=%%b"
  5.         if /i "%%a"=="capacity" set /a "capacity=%%b/1024/1024" & echo.實體內存 = !capacity! MB !banklabel:~,-1!
  6. )
  7. for /f "tokens=1* delims==" %%a in ('wmic path win32_diskdrive get caption^,interfacetype^,size /value 2^>nul') do (
  8.         if /i "%%a"=="caption" set "caption=%%b"
  9.         if /i "%%a"=="size" set /a "size=%%b/1024/1024" & ECHO.磁碟名稱 = !Caption:~,-1!  Size: !Disk! GB
  10. )
  11. pause >nul
复制代码
希望代碼能適用於XP及WIN7的環境,懇請不吝指教!!

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2011-6-4 17:49:48 | 显示全部楼层
終於發現原來是被除數過大的限制!
已經解決問題了!!
发表于 2016-7-17 20:53:06 | 显示全部楼层
bat+vbs
  1. '&cls&cscript -nologo -e:vbscript "%~fs0"&pause&exit
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set wmi = GetObject("winmgmts:\\.\root\cimv2")

  4. WSH.echo GetMemory()&GetHardDisk()

  5. '内存容量
  6. Function GetMemory()
  7.     Dim i, s
  8.     Set Memory = wmi.execquery("select * from win32_physicalmemory")
  9.     For Each item In Memory
  10.         i = i+1
  11.         s = s &"内存"& i &"[容量:"& GetSize(item.Capacity) &"]"& vbCrLf
  12.     Next  
  13.     GetMemory = s
  14. End Function

  15. '硬盘容量
  16. Function GetHardDisk()
  17.     Dim i, s
  18.     Set HardDisk = wmi.execquery("select * from win32_diskdrive")
  19.     For Each item In HardDisk
  20.         i = i+1
  21.         s = s &"硬盘"& i &"[名称:"& item.Caption &",接口类型:"& item.InterfaceType &",容量:"&GetSize(item.Size) &"]"& vbCrLf
  22.     Next  
  23.     GetHardDisk = s
  24. End Function

  25. '转换单位
  26. Function GetSize(size)
  27.     If size >= 1125899906842624 Then
  28.         GetSize = FormatNumber(size/1125899906842624, 2, true) & "PB"
  29.     ElseIf size >= 1099511627776 Then
  30.         GetSize = FormatNumber(size/1099511627776, 2, true) & "TB"
  31.     ElseIf size >= 1073741824 Then
  32.         GetSize = FormatNumber(size/1073741824, 2, true) & "GB"
  33.     ElseIf size >= 1048576 Then
  34.         GetSize = FormatNumber(size/1048576, 2, true) & "MB"
  35.     ElseIf size >= 1024 Then
  36.         GetSize = FormatNumber(size/1024, 2, true) & "KB"
  37.     Else
  38.         GetSize = size & "字节"   
  39.     End If
  40. End Function
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 14:53 , Processed in 0.031899 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表