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

[数值计算] [已解决]批处理代码,硬盘容量计算,如何实现常规数字显示?

本帖最后由 ygqiang 于 2024-11-29 00:24 编辑

[已解决]批处理代码,硬盘容量计算,如何实现常规数字显示?
比如32G\128G\256G\500G\1T
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 代码开始
  3. cls
  4. echo.                协议   机械/固态    接口
  5. set "_NVMe=NVMe====SSD    ::::::m.2"
  6. set "_USB=USB"
  7. set "_SATA=SATA====HDD/SSD::::::SATA-MSATA-m.2"
  8. for /f "tokens=2,4,5" %%a in ('"echo list disk|diskpart|findstr /irc:"磁盘  *[0-9]""') do (
  9.      for /f "tokens=3" %%i in ('"(echo sel disk %%a & echo detail disk & echo list part)|diskpart|findstr /irc:"类型  *:""') do (
  10.           if defined _%%i echo.&echo.&echo Disk%%a Type: !_%%i! %%b %%c
  11.      )
  12. )
  13. pause >nul
  14. exit
复制代码
运行后显示如下:


Disk0 Type:        SATA====HDD/SSD::::::SATA-MSATA-m.2         465 GB
Disk1 Type:        NVMe====SSD    ::::::m.2         238 GB
Disk2 Type:        USB         931 GB
Disk3 Type:        USB         117 GB
Disk4 Type:        USB         28 GB
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 4# aloha20200628


    谢谢 ,win10,win11 24h2系统,测试成功。

TOP

本帖最后由 aloha20200628 于 2024-11-27 21:23 编辑

回复 2# ygqiang

若 wmic 真是彻底接棒给 powershell,批处就直接调用 powershell 功能了...
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "tokens=1-2 delims=: " %%a in (
  3.    'powershell "get-physicaldisk|select *"^|findstr /ib "deviceid bustype size" '
  4. ) do if /i "%%a"=="size" (
  5.    for /f %%v in ('powershell "[math]::round(%%b/1gb)" ') do echo,Disk!deviceid! !bustype! %%vGB
  6. ) else set "%%a=%%b"
  7. pause&exit/b
复制代码
1

评分人数

TOP

感谢楼主分享
还有win11 wmic貌似默认不启用 ,得自己手动启用才能用

TOP

本帖最后由 ygqiang 于 2024-10-29 15:51 编辑

参考下面的代码,可以显示常规容量,256G\500G
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. COLOR 04
  4. COLOR 84
  5. COLOR f4
  6. COLOR fc
  7. COLOR 7c
  8. COLOR 74
  9. echo.
  10. echo.
  11. echo --------------硬盘信息如下:
  12. echo.
  13. set "StrDrive="
  14. for /f "tokens=1* delims==" %%a in ('"wmic DiskDrive where MediaType='Fixed hard disk media' get Model,Size /value | findstr ="') do (
  15.     if "%%a" == "Model" (
  16.         for /f  %%i in ("%%b") do (
  17.             set StrDrive=!StrDrive!,品牌:%%i
  18.         )
  19.     ) else if "%%a" == "Size" (
  20.         for /f "delims=" %%i in ("%%b") do (
  21.             set SizeGB=%%i
  22. set /a SizeGB=!SizeGB:~, -6!/1000
  23. set StrDrive=!StrDrive!,容量:!SizeGB!GB
  24. set "StrDrive=!StrDrive:~1!"
  25. echo,!StrDrive!
  26. set "StrDrive="
  27.         )
  28.     )
  29. )
  30. pause
复制代码
最新版本的Windows 11 专业版24h2,不内置wmic命令了?

TOP

返回列表