无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5549|回复: 80
打印 上一主题 下一主题

[发布] 20240109自娱自乐【wmic硬件检测-gfd5.3】cmd版 简单获取电脑信息并保存,慢慢完善...

  [复制链接]
跳转到指定楼层
#
发表于 2024-1-6 14:36:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 享β亻寸木东 于 2024-3-3 10:18 编辑

自己用的代码,不定时更新中。
主要用途:获取电脑的序列号、配置信息,然后保存到文件中。我是卖电脑的,收集这些信息可以记录电脑序列,销售日期,方便后期的保修查询等。
代码都是东拼西凑弄来的,大神有更好的建议欢迎提出,谢谢。
5.4加qq群吧:58902001还有cmd获取显示器信息:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 正在获取硬件基础信息(需要几分钟时间)
  4. set "FileDX=%temp%\dxdiag.txt"
  5. dxdiag /whql:off /t "%FileDX%"

  6. echo 正在计算
  7. for /f "tokens=2 delims=" %%i in ('wmic DesktopMonitor Get PNPDeviceID 2^>nul ^| findstr "DISPLAY"') do (
  8.     set "MonitorPNP=%%i"
  9. )

  10. for /f "tokens=2*" %%i in ('findstr /c:"Monitor Name:" "%FileDX%"') do (
  11.     set "MonitorName=%%j"
  12. )

  13. for /f "tokens=2*" %%i in ('findstr /c:"Monitor Model:" "%FileDX%"') do (
  14.     set "MonitorModel=%%j"
  15. )
  16. if /i "!MonitorModel!" equ "Unknown" (
  17.     for /f "tokens=2*" %%i in ('findstr /c:"Monitor Id:" "%FileDX%"') do (
  18.         set "MonitorModel=%%j"
  19.     )
  20. ) else if "!MonitorModel!" equ "" (
  21.     set "MonitorModel=!MonitorPNP!"
  22. )

  23. for /f "tokens=3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\!MonitorPNP!" /s ^| findstr "EDID"') do (
  24.     set "MonitorEDID=%%i"
  25. )
  26. set "YearNum=!MonitorEDID:~34,2!"
  27. set "WeekNum=!MonitorEDID:~32,2!"
  28. set "HeightNum=!MonitorEDID:~42,2!"
  29. set "WidthNum=!MonitorEDID:~44,2!"
  30. set /a WeekNum=0x!WeekNum!*1
  31. set /a YearNum=0x!YearNum!*1+1990
  32. set /a HeightNum=0x!HeightNum!*1
  33. set /a WidthNum=0x!WidthNum!*1
  34. for /f %%i in ('powershell "[Math]::Round([Math]::Sqrt([Math]::Pow(!HeightNum!,2)+[Math]::Pow(!WidthNum!,2))*0.3937,1)"') do (
  35.     set "MonitorSizeInch=%%i"
  36. )

  37. for /f "tokens=4" %%i in ('findstr /c:"User DPI Setting:" "%FileDX%"') do (
  38.     set "MonitorDPI=%%i"
  39. )

  40. for /f "tokens=2*" %%i in ('findstr /c:"Native Mode:" "%FileDX%"') do (
  41.     set "MonitorNative=%%j"
  42. )

  43. cls
  44. echo 名    称 : !MonitorName!
  45. echo 型    号 : !MonitorModel!
  46. echo 屏幕尺寸 : !HeightNum! X !WidthNum! 厘米 (!MonitorSizeInch! 英寸)
  47. echo 生产日期 : !YearNum!年第!WeekNum!周
  48. echo 像素密度 : !MonitorDPI! DPI
  49. echo 当前模式 : !MonitorNative!
  50. pause >nul
复制代码

5.3地址:https://www.123pan.com/s/8JFRVv-Ichtv.html提取码:1234
这电脑板载8颗内存

5.2代码
  1. @echo off&color e&title gfd硬件检测_5.2
  2. mode con cols=110 lines=70
  3. setlocal enabledelayedexpansion
  4. echo 信息提取时间:%date%      时间 %Time%
  5. for /f "tokens=1* delims=:=" %%a in ('"wmic os get Caption,InstallDate,OSArchitecture,Version /Format:List"') do (
  6.     IF /I "%%a"=="Caption" set Caption=%%b
  7.     IF /I "%%a"=="InstallDate" set InstallDate=%%b
  8.     IF /I "%%a"=="OSArchitecture" set OSArchitecture=%%b
  9.     IF /I "%%a"=="Version" set Version=%%b
  10. )
  11. echo Windows_信息:%Caption%%Version% 【%OSArchitecture%】 安装日期:%InstallDate:~0,4%年%InstallDate:~4,2%月%InstallDate:~6,2%日_%InstallDate:~8,2%点%InstallDate:~10,2%分%InstallDate:~12,2%秒
  12. echo.

  13. echo 主版:
  14. for /f "tokens=1* delims==" %%a in ('"wmic csproduct get IdentifyingNumber,Name,Vendor,Version /value|more +2"') do (
  15.     IF /I "%%a"=="IdentifyingNumber" set IdentifyingNumber=%%b
  16.     IF /I "%%a"=="Name" set Name=%%b
  17.     IF /I "%%a"=="Vendor" set Vendor=%%b
  18.     IF /I "%%a"=="Version" set VersionZ=%%b
  19. )
  20. echo     供应商:%Vendor%
  21. echo     系  列:%Name%
  22. echo     型  号:%VersionZ%
  23. echo     序列号:%IdentifyingNumber%&echo.&echo.

  24. REM 处理器
  25. for /f "tokens=2 delims==" %%a in ('"wmic cpu Get DeviceID /value"') do set /a CPUQuantity+=1
  26. echo CPU :【%CPUQuantity% 颗】
  27. for /f "tokens=1* delims==" %%a in ('"wmic cpu get MaxClockSpeed,Name,NumberOfCores,NumberOfLogicalProcessors /value"') do (
  28.     IF /I "%%a"=="MaxClockSpeed" set MaxClockSpeed=%%b
  29.     IF /I "%%a"=="Name" set NameC=%%b
  30.     IF /I "%%a"=="NumberOfCores" set NumberOfCores=%%b
  31.     IF /I "%%a"=="NumberOfLogicalProcessors" set NumberOfLogicalProcessors=%%b
  32. )
  33. echo     名  称:%NameC%【%NumberOfCores%核%NumberOfLogicalProcessors%线程】
  34. echo     主  频:%MaxClockSpeed%&echo.&echo.

  35. REM 内存
  36. for /f "tokens=2 delims==" %%a in ('"wmic memorychip Get Tag /value"') do set /a MemoryQuantity+=1
  37. echo 内存:【%MemoryQuantity% 条】
  38. for /f "tokens=2 delims==" %%a in ('"wmic memorychip get Capacity /value"') do (
  39.     set "Capacity=%%a"
  40.     for /f "tokens=1 delims=." %%b in ("!Capacity:~,-7!/1073") do set /a m+=%%b
  41.     )
  42. call echo     总容量:%%m%% GB
  43. for /f "tokens=1* delims==" %%a in ('"wmic memorychip get ConfiguredClockSpeed /value"') do (
  44.     IF /I "%%a" == "ConfiguredClockSpeed" set ConfiguredClockSpeed=%%b
  45. )
  46. echo     频  率:%ConfiguredClockSpeed%&echo.&echo.

  47. REM 硬盘
  48. for /f "tokens=2 delims==" %%a in ('"wmic DiskDrive where MediaType='Fixed hard disk media' get Caption /value"') do set /a DiskQuantity+=1
  49. echo 硬盘:【%DiskQuantity% 块】
  50. set "Model=   型  号:"&set "SerialNumber=   序列号:"&set "size=   容  量:"
  51. for /f "tokens=1* delims==" %%a in ('"wmic DiskDrive where MediaType='Fixed hard disk media' get Model,SerialNumber,Size /value|more +2"') do echo. !%%a!%%b


  52. echo 显示:
  53. for /f "tokens=1* delims==" %%a in ('"wmic path Win32_VideoController get CurrentRefreshRate,DeviceID,MaxRefreshRate,MinRefreshRate,Name,VideoModeDescription /value"') do (
  54.     IF /I "%%a"=="CurrentRefreshRate" (
  55.         echo.    当前刷新率: %%b)
  56.     IF /I "%%a"=="DeviceID" (
  57.         echo.    设  备  ID: %%b)
  58.     IF /I "%%a"=="MaxRefreshRate" (
  59.         echo.    最高刷新率: %%b)
  60.     IF /I "%%a"=="MinRefreshRate" (
  61.         echo.    最低刷新率: %%b)
  62.     IF /I "%%a"=="Name" (
  63.         echo.    显卡  名称: %%b)
  64.     IF /I "%%a"=="VideoModeDescription" (
  65.         echo.    当前分辨率: %%b
  66.         echo ----------------------------)
  67. )
  68. echo.&echo.

  69. echo BIOS:
  70. for /f "tokens=1* delims=:=" %%a in ('"wmic bios get BIOSVersion,Manufacturer,Name,ReleaseDate,SerialNumber,SMBIOSBIOSVersion,Version /Format:List"') do (
  71.     IF /I "%%a"=="ReleaseDate" set ReleaseDate=%%b
  72.     IF /I "%%a"=="SerialNumber" set SerialNumberB=%%b
  73.     IF /I "%%a"=="Manufacturer" set Manufacturer=%%b
  74.     IF /I "%%a"=="Name" set NameB=%%b
  75.     IF /I "%%a"=="Version" set VersionB=%%b
  76.     IF /I "%%a"=="BIOSVersion" set BIOSVersion=%%b
  77.     IF /I "%%a"=="SMBIOSBIOSVersion" set SMBIOSBIOSVersion=%%b
  78. )
  79. echo     制  造  商:%Manufacturer%
  80. echo     名      称:%NameB%
  81. echo     版      本:%VersionB%
  82. echo     BIOS  版本:%BIOSVersion%
  83. echo     SMBIOS版本:%SMBIOSBIOSVersion%
  84. echo     固件  日期:%ReleaseDate:~0,4%年%ReleaseDate:~4,2%月%ReleaseDate:~6,2%日
  85. echo     序  列  号:%SerialNumberB%

  86. echo.
  87. echo 信息提取完成,按任意键保存到文本中。
  88. pause>nul

  89. REM ==========保存信息到文件中,如果不需要,删除下面所有==========
  90. echo 信息提取时间:%date%      时间 %Time%>>wmic硬件信息gfd.txt
  91. echo Windows_信息:%Caption%%Version% 【%OSArchitecture%】 安装日期:%InstallDate:~0,4%年%InstallDate:~4,2%月%InstallDate:~6,2%日_%InstallDate:~8,2%点%InstallDate:~10,2%分%InstallDate:~12,2%秒>>wmic硬件信息gfd.txt
  92. echo.>>wmic硬件信息gfd.txt

  93. echo 主版:>>wmic硬件信息gfd.txt
  94. echo     供应商:%Vendor%>>wmic硬件信息gfd.txt
  95. echo     系  列:%Name%>>wmic硬件信息gfd.txt
  96. echo     型  号:%VersionZ%>>wmic硬件信息gfd.txt
  97. echo     序列号:%IdentifyingNumber%>>wmic硬件信息gfd.txt
  98. echo. >>wmic硬件信息gfd.txt
  99. echo. >>wmic硬件信息gfd.txt

  100. REM 处理器
  101. echo CPU :【%CPUQuantity% 颗】>>wmic硬件信息gfd.txt
  102. echo     名  称:%NameC%【%NumberOfCores%核%NumberOfLogicalProcessors%线程】>>wmic硬件信息gfd.txt
  103. echo     主  频:%MaxClockSpeed%>>wmic硬件信息gfd.txt
  104. echo. >>wmic硬件信息gfd.txt
  105. echo. >>wmic硬件信息gfd.txt

  106. REM 内存
  107. echo 内存:【%MemoryQuantity% 条】>>wmic硬件信息gfd.txt
  108. echo     总容量:%m% GB>>wmic硬件信息gfd.txt
  109. echo     频  率:%ConfiguredClockSpeed%>>wmic硬件信息gfd.txt
  110. echo. >>wmic硬件信息gfd.txt
  111. echo. >>wmic硬件信息gfd.txt

  112. REM 硬盘
  113. echo 硬盘:【%DiskQuantity% 块】>>wmic硬件信息gfd.txt
  114. set "Model=   型  号:"&set "SerialNumber=   序列号:"&set "size=   容  量:"
  115. for /f "tokens=1* delims==" %%a in ('"wmic DiskDrive where MediaType='Fixed hard disk media' get Model,SerialNumber,Size /value|more +2"') do echo. !%%a!%%b>>wmic硬件信息gfd.txt

  116. echo 显示:>>wmic硬件信息gfd.txt
  117. for /f "tokens=1* delims==" %%a in ('"wmic path Win32_VideoController get CurrentRefreshRate,DeviceID,MaxRefreshRate,MinRefreshRate,Name,VideoModeDescription /value"') do (
  118.     IF /I "%%a"=="CurrentRefreshRate" (
  119.         echo.    当前刷新率: %%b>>wmic硬件信息gfd.txt)
  120.     IF /I "%%a"=="DeviceID" (
  121.         echo.    设  备  ID: %%b>>wmic硬件信息gfd.txt)
  122.     IF /I "%%a"=="MaxRefreshRate" (
  123.         echo.    最高刷新率: %%b>>wmic硬件信息gfd.txt)
  124.     IF /I "%%a"=="MinRefreshRate" (
  125.         echo.    最低刷新率: %%b>>wmic硬件信息gfd.txt)
  126.     IF /I "%%a"=="Name" (
  127.         echo.    显卡  名称: %%b>>wmic硬件信息gfd.txt)
  128.     IF /I "%%a"=="VideoModeDescription" (
  129.         echo.    当前分辨率: %%b>>wmic硬件信息gfd.txt
  130.         echo ---------------------------->>wmic硬件信息gfd.txt)
  131. )
  132. echo. >>wmic硬件信息gfd.txt
  133. echo. >>wmic硬件信息gfd.txt

  134. echo BIOS:>>wmic硬件信息gfd.txt
  135. echo     制  造  商:%Manufacturer%>>wmic硬件信息gfd.txt
  136. echo     名      称:%NameB%>>wmic硬件信息gfd.txt
  137. echo     版      本:%VersionB%>>wmic硬件信息gfd.txt
  138. echo     BIOS  版本:%BIOSVersion%>>wmic硬件信息gfd.txt
  139. echo     SMBIOS版本:%SMBIOSBIOSVersion%>>wmic硬件信息gfd.txt
  140. echo     固件  日期:%ReleaseDate:~0,4%年%ReleaseDate:~4,2%月%ReleaseDate:~6,2%日>>wmic硬件信息gfd.txt
  141. echo     序  列  号:%SerialNumberB%>>wmic硬件信息gfd.txt
  142. echo   ****************************************页尾****************************************>>wmic硬件信息gfd.txt
复制代码





点评

辛苦了  发表于 7 天前

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 赞一个!

查看全部评分

64#
发表于 前天 20:58 来自手机 | 只看该作者
谢谢分享,支持原创,楼主不易,了表赞赏。
回复

使用道具 举报

63#
发表于 前天 13:28 | 只看该作者
脚本获取的硬盘序列号,与标签上显示序列号不一致
回复

使用道具 举报

62#
发表于 2024-5-7 14:05:31 | 只看该作者
感谢分享,长姿势了
回复

使用道具 举报

61#
发表于 2024-5-7 12:58:08 来自手机 | 只看该作者
谢谢分享,支持原创,楼主不易,了表赞赏。
回复

使用道具 举报

60#
发表于 2024-5-7 11:17:29 | 只看该作者
wmic path Win32_PnPSignedDriver where "DeviceClass='Monitor'" get DeviceName,Manufacturer,DriverVersion /format:list
回复

使用道具 举报

59#
发表于 2024-5-7 11:14:46 | 只看该作者
zlq_hysy 发表于 2024-1-6 15:10
感谢分享。显示器信息能搜集到吗?

wmic path Win32_DesktopMonitor get /format:list
回复

使用道具 举报

58#
发表于 2024-5-4 18:00:18 | 只看该作者
谢谢
回复

使用道具 举报

57#
发表于 2024-5-1 18:16:23 | 只看该作者
这个脚本很棒,收藏了
回复

使用道具 举报

56#
发表于 2024-4-30 16:57:00 | 只看该作者
还不错的,读取了本机的配置的信息,基本可以替换掉鲁大师了
回复

使用道具 举报

55#
发表于 2024-4-5 11:05:16 来自手机 | 只看该作者
学习了,感谢分享
回复

使用道具 举报

54#
发表于 2024-4-3 13:57:44 | 只看该作者
感谢楼主分享,学习了
回复

使用道具 举报

53#
发表于 2024-4-3 12:28:03 | 只看该作者
谢谢分享
回复

使用道具 举报

52#
发表于 2024-3-4 21:44:01 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

51#
 楼主| 发表于 2024-3-3 18:18:35 | 只看该作者
pda8888 发表于 2024-3-3 16:12
这是用了wintoflash大师的nwinfo
和windows版的jq综合出来的,jq语法在批处理环境超级复杂,不晓得吓 ...

谢谢分享!!!谢谢分享!!!
回复

使用道具 举报

50#
发表于 2024-3-3 16:12:11 | 只看该作者
本帖最后由 pda8888 于 2024-3-3 16:14 编辑
  1. @echo off
  2. echo.
  3. nwinfo_x64.exe --cpu --smbios --disk --pci=03 --format=json|jq -r -c "[ "^
  4. MB:\t\(.SMBIOS[]^|select(."Table Type" == 1 ) ^|^
  5.         ."Manufacturer") \(.SMBIOS[]^|select(."Table Type" == 2 ) ^| ^
  6.         ."Product Name")\(.SMBIOS[]^|select(."Table Type" == 0 ) ^| ^
  7.         " (BIOS Ver=\(."Version"))|\(."Release Date" | split("/") | "\(.[2])-\(.[0])-\(.[1])" )")\t\(.SMBIOS[] ^| select(."Table Type" == 2 )  ^| ."Serial Number")", "^
  8. CPU:\t\(.CPUID.CPU0.Brand)", "^
  9. Mem:\t\(.SMBIOS[] ^| select(."Table Type" == 17 ) ^| ^
  10.         select(."Manufacturer" != null) ^|^
  11.         "\(.Manufacturer)|\(.["Part Number"] | sub(" +$"; ""))|\(.["Device Type"]) \(.["Speed (MT/s)"]) \((."Device Size" / 1024 / 1024 /1024))GB@\(.["Device Locator"])\t\(.["Serial Number"])")", "^
  12. VGA:\t\(.PCI[]^|"\(.Vendor) \(.Device)")", "^
  13. Disk:\t\(.Disks[]^|"\(."HW Name") (\(.["Health Status"] | capture("\\((?^<percentage^>\\d+%%)\\)"; "g").percentage))@\(."Type") \(."Size" /1000000000 | round)GB\t\(."Serial Number")")" ] | join("\n")"
复制代码


这是用了wintoflash大师的nwinfo
和windows版的jq综合出来的,jq语法在批处理环境超级复杂,不晓得吓到了一些小宝宝没有。
jq 1.7.1 executables for AMD64 or i386.

效果是这样的:



好处是不依赖于wmic,PE下可用。

点评

谢谢分享!!!谢谢分享!!!  详情 回复 发表于 2024-3-3 18:18
回复

使用道具 举报

49#
 楼主| 发表于 2024-3-1 08:51:41 | 只看该作者
Qidulan 发表于 2024-2-28 09:53
某些电脑读取到的硬盘序列号不对!

再就是现在很多固态硬盘 鱼龙混杂,厂家不一定把序列号写入硬盘固件
回复

使用道具 举报

48#
 楼主| 发表于 2024-3-1 08:50:10 | 只看该作者
Qidulan 发表于 2024-2-28 09:53
某些电脑读取到的硬盘序列号不对!

wmic命令获取的不一定准,仅供参考。
回复

使用道具 举报

47#
发表于 2024-2-28 09:53:59 | 只看该作者
某些电脑读取到的硬盘序列号不对!

点评

再就是现在很多固态硬盘 鱼龙混杂,厂家不一定把序列号写入硬盘固件  详情 回复 发表于 2024-3-1 08:51
wmic命令获取的不一定准,仅供参考。  详情 回复 发表于 2024-3-1 08:50
回复

使用道具 举报

46#
发表于 2024-2-21 17:04:25 | 只看该作者

谢谢楼主的分享
回复

使用道具 举报

45#
发表于 2024-2-21 16:59:35 | 只看该作者
感谢分享
回复

使用道具 举报

44#
发表于 2024-2-4 10:56:50 | 只看该作者

这个可以了,谢谢!
回复

使用道具 举报

43#
发表于 2024-2-4 08:30:04 | 只看该作者
感谢分享
回复

使用道具 举报

42#
发表于 2024-1-30 21:30:28 | 只看该作者
娱乐性很强,谢了!
回复

使用道具 举报

41#
发表于 2024-1-28 11:29:46 | 只看该作者
谢谢分享
回复

使用道具 举报

40#
发表于 2024-1-28 11:24:48 | 只看该作者
感谢分享
回复

使用道具 举报

39#
发表于 2024-1-26 09:12:37 | 只看该作者
谢谢分享
回复

使用道具 举报

38#
发表于 2024-1-25 18:10:38 | 只看该作者
谢谢分享
回复

使用道具 举报

37#
 楼主| 发表于 2024-1-15 15:57:36 | 只看该作者
3416510931 发表于 2024-1-15 11:21
保存的文本用Notepad2打开时提示换行符不一致

能用吗?能用就行
回复

使用道具 举报

36#
发表于 2024-1-15 11:21:40 | 只看该作者
保存的文本用Notepad2打开时提示换行符不一致

点评

能用吗?能用就行  详情 回复 发表于 2024-1-15 15:57
回复

使用道具 举报

35#
发表于 2024-1-15 10:58:59 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-16 19:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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