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

[文本处理] [分享]利用鲁大师组件生成日志并提取硬件信息/附精简脚本

[复制链接]
发表于 2025-1-8 12:19:35 | 显示全部楼层 |阅读模式
本帖最后由 yakeyun 于 2025-8-8 18:24 编辑

一:硬件信息提取脚本
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. taskkill /f /t /IM ComputerZService.exe 1>nul 2>nul
  5. taskkill /f /t /IM ComputerzService_x64.exe 1>nul 2>nul
  6. taskkill /f /t /IM hdw_disk_scan.exe 1>nul 2>nul
  7. taskkill /f /t /IM Display3DEx.exe 1>nul 2>nul
  8. if exist .\LDS_CS\LuDaShi\Log\*.* (del .\LDS_CS\LuDaShi\Log\*.*)
  9. Start /min .\LuDaShi\ComputerZService.exe HardwareDll.dll

  10. echo 硬件信息获取中,请稍等...
  11. timeout -t 1 >nul
  12. :top
  13. echo %time%_获取硬件信息中,请稍等...
  14. set "keyword=GetBatteryJson"
  15. (type ".\LuDaShi\log\ComputerZ_HardwareDll.log" | find /i "!keyword!" || (goto top))

  16. cls

  17. for /f "tokens=*" %%a in ('powershell -Command "(Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty Caption)"') do set "OS=%%a"

  18. set top=[硬件参数]
  19. chcp 65001 >nul
  20. set DiskNumber=0
  21. set AudioNumber=0
  22. set MemoryNumber=0
  23. set Order=findstr /i /l /c:"[overviewinfowrapper] CPUName :" /c:"[memory] SpdOverview." /c:"[gpuprocesser] VideoAdapter" /c:"[motherboard] GetMotherboardInfo:" /c:"[monitor] find primary monitor" /c:"[disk] ModelNumber" /c:"[network_card] GetNetworkInfo: NetworkParams.strDescription" /c:"[uldsdbhelper] Match: 6, GetDeviceName: Vendor=10EC" "LuDaShi\Log\ComputerZ_HardwareDll.log"
  24. for /f "tokens=9-12 delims=]:=" %%a in ('%Order%') do (
  25.     set str=%%a
  26.     set str=!str:~1,4!
  27.     if "!str!"=="CPUN" (
  28.         set CPUName=%%b
  29.     ) else if "!str!"=="GetM" (
  30.         set MotherboardInfo=%%b
  31.     ) else if "!str!"=="GetN" (
  32.         for /f "tokens=2 delims=[" %%i in ("%%b") do (
  33.             if not defined _%%i set /a NetworkNumber+=1
  34.             set Network%%i=%%d
  35.             set _%%i=true
  36.         )
  37.     ) else if "!str!"=="Mode" (
  38.         set Disk!DiskNumber!Number=%%c
  39.         set /a DiskNumber+=1
  40.     ) else if "!str!"=="Mult" (
  41.         for /f "tokens=2 delims=@" %%i in ("%%b") do set Audio!AudioNumber!Number=%%i
  42.         set /a AudioNumber+=1
  43.     ) else if "!str!"=="SpdO" (
  44.         for /f "tokens=2 delims=. " %%i in ("%%a") do set Memory!MemoryNumber!Name=%%d
  45.         set /a MemoryNumber+=1
  46.     ) else if "!str!"=="Vide" (
  47.         set VideoAdapter=%%b
  48.     ) else if "!str!"=="find" (
  49.         set monitor=%%b
  50.     )
  51. )
  52. (
  53. echo %top%
  54. echo SysBet=%OS%
  55. set CPUName
  56. set MemoryNumber
  57. set MemoryNumber=
  58. set Memory
  59. set VideoAdapter
  60. set MotherboardInfo
  61. set monitor
  62. set DiskNumber
  63. set DiskNumber=
  64. set Disk
  65. set NetworkNumber
  66. set NetworkNumber=
  67. set Network
  68. )>sysinfo.ini
  69. echo.
  70. echo.
  71. type sysinfo.ini
  72. timeout -t 2 >nul
  73. taskkill /f /t /IM ComputerZService.exe 1>nul 2>nul
  74. taskkill /f /t /IM ComputerzService_x64.exe 1>nul 2>nul
  75. taskkill /f /t /IM hdw_disk_scan.exe 1>nul 2>nul
  76. ::del sysinfo.ini
  77. ::del LuDaShi\log\ComputerZ_HardwareDll.log
  78. echo.

  79. PAUSE>nul
  80. exit
复制代码


下载链接:https://sanli.lanzoue.com/b0fp21yve
密码:6u3k

二、鲁大师组件精简脚本
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "targetPath=%cd%"
  5. cd /d C:\Windows\SysNative\
  6. title 鲁大师文件精简工具 by.SanLi
  7. color 07
  8. ::mode con: cols=80 lines=25
  9. chcp 936 >nul
  10. echo,①请拷贝老版本”LuDaShi“文件夹目录,到脚本目录,然后回车执行获取文件列表 & pause
  11. (for /f "tokens=* delims=, " %%f in ('dir /a /s /b %targetPath%\LuDaShi\*.*') do echo %%f)>"lds_list.txt"
  12. echo,②请删除老版本“LuDaShi”文件夹目录,或者修改”LuDaShi“文件夹名称为其它。回车继续 & pause
  13. echo,③请拷贝新版本”LuDaShi“文件夹目录,到脚本目录,然后回车执行获取文件列表 & pause
  14. (for /f "tokens=* delims=, " %%f in ('dir /a /s /b %targetPath%\LuDaShi\*.*') do echo %%f)>"del_list.txt"
  15. title 鲁大师文件精简精简中,请稍等...
  16. set keywords=del_list.txt
  17. set target=lds_list.txt

  18. for /f "tokens=*" %%a in (%keywords%) do (
  19.     findstr /C:%%a %target% >nul
  20.     if not !errorlevel! equ 0 (
  21.     echo y | del "%%a"
  22.     echo 删除文件:%%a
  23. )
  24. )
  25. title 鲁大师文件精简工具 by.SanLi
  26. endlocal
  27. echo,④继续精简,删除空目录
  28. set "del_dir=%~dp0\LuDaShi"
  29. for /f "delims=" %%s in ('dir /ad/s/b "%del_dir%" ^|sort /r') do rd "%%s" 2>nul
  30. echo,& echo,精简完毕,目标目录为”LuDaShi“文件夹 &echo,
  31. pause
复制代码
三、附上精简列表[lds_list.txt],方便直接调用:
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZ.dat
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZ.set
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZService.exe
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZTray.exe
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZ_HardwareDll.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\ComputerZ_x64.sys
D:\Desktop\LDS_CS_NEW\LuDaShi\CustDev.dat
D:\Desktop\LDS_CS_NEW\LuDaShi\DataMgr.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\DataMgr_x64.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\HardwareEx_x64.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\HWCaches.dat
D:\Desktop\LDS_CS_NEW\LuDaShi\log
D:\Desktop\LDS_CS_NEW\LuDaShi\Monitors.dat
D:\Desktop\LDS_CS_NEW\LuDaShi\motherboard.dat
D:\Desktop\LDS_CS_NEW\LuDaShi\NetBridge.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\netul.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\netul64.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\Perfmon.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\sites.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\SiteUIHelper.dll
D:\Desktop\LDS_CS_NEW\LuDaShi\Utils
D:\Desktop\LDS_CS_NEW\LuDaShi\log\ComputerZ_HardwareDll.log
D:\Desktop\LDS_CS_NEW\LuDaShi\Utils\dll_service.exe


脚本放在"LuDaShi"所在文件夹同级目录即可,不需要固定位置,除非套用这边的lds_list.txt清单,如果套用清单,可以把路径统一替换为自己的目录,同时跳过①②步骤,直接从③开始执行。
目录位置见5楼图片,“LuDaShi\ComputerZService.exe”这个是内部路径。

评分

参与人数 1技术 +1 收起 理由
610100 + 1 感谢分享

查看全部评分

 楼主| 发表于 2025-1-8 12:26:36 | 显示全部楼层
回复 1# yakeyun

占楼占用,其它提取项目可以自行添加,最终会在本地生成一个配置文件,方便用其它语言写硬件检测工具时直接调用。
其[sysinfo.ini]格式类容如下:

[硬件参数]
SysBet=Microsoft Windows 11 家庭中文版
CPUName=英特尔 Core i5-8600T @ 2.30GHz 六核
MemoryNumber=1
Memory0Name=英睿达 DDR4 2133MHz 8GB
VideoAdapter=Intel(R) UHD Graphics 630 ( 1 GB / 华硕 )
MotherboardInfo=华硕 PRIME B365M-K
monitor= 惠科 HKC0000 ( 23.6 英寸  )
DiskNumber=1
Disk0Number= 影驰 GALAX T0240A (固态硬盘)
NetworkNumber=2
Network0= 瑞昱 Realtek RTL8852BE WiFi 6 802.11ax PCIe Adapter / Azurewave
Network1= 瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller / 华硕
发表于 2025-8-7 08:21:06 | 显示全部楼层
回复 1# yakeyun


    能否介绍一下第1个脚本需要放在哪个目录下执行?看起来使用的相对路径
发表于 2025-8-7 22:39:06 | 显示全部楼层
https://pecmd.net/thread-373.htm  可以一键生成配置 不用谢
 楼主| 发表于 2025-8-8 10:47:32 | 显示全部楼层
本帖最后由 yakeyun 于 2025-8-8 18:24 编辑

回复 3# Batcher

脚本放在"LuDaShi"所在文件夹同级目录即可,不需要固定位置,除非套用这边的lds_list.txt清单,如果套用清单,可以把路径统一替换为自己的目录,同时跳过①②步骤,直接从③开始执行。
“LuDaShi\ComputerZService.exe”这个是内部路径。

 楼主| 发表于 2025-8-8 12:11:05 | 显示全部楼层
回复 5# yakeyun
下面是windows11 24H2系统下获取信息出现乱码的解决方案,批处理需用UTF-8格式。BIOS版本是用的CPU-Z获取的,不需要可以删除。
  1. @echo off
  2. chcp 65001 >nul
  3. setlocal enabledelayedexpansion
  4. cd /d "%~dp0"
  5. taskkill /f /t /IM ComputerZService.exe 1>nul 2>nul
  6. taskkill /f /t /IM ComputerzService_x64.exe 1>nul 2>nul
  7. taskkill /f /t /IM hdw_disk_scan.exe 1>nul 2>nul
  8. taskkill /f /t /IM Display3DEx.exe 1>nul 2>nul
  9. if exist .\LDS_CS\LuDaShi\Log\*.* (del .\LDS_CS\LuDaShi\Log\*.*)
  10. Start /min .\LuDaShi\ComputerZService.exe HardwareDll.dll
  11. ::===========BIOSDATESET不需要可以删除下面内容==============
  12. call cpuz_x64.exe -txt=1
  13. for /f "tokens=1,2" %%a in ('type 1.txt ^|find /i "date" ^|find /i "/" ^|find /i "/"') do (
  14. if "%%a" equ "date" set "biosdate=%%b"
  15. )
  16. for /f "tokens=1-3" %%a in ('type 1.txt ^|find /i "speed" ^|find /i "MHz"') do (
  17. if "%%a" equ "speed" set "MemorySpeed=%%b%%c"
  18. )
  19. for /f "tokens=1-3 delims=/" %%a in ('echo !biosdate!') do (
  20. set "biosdate=%%c/%%a/%%b"
  21. )
  22. ::===========BIOSDATESET不需要可以删除上面内容==============

  23. echo 硬件信息获取中,请稍等...
  24. timeout -t 1 >nul
  25. :top
  26. echo %time%_获取硬件信息中,请稍等...
  27. set "keyword=GetBatteryJson"
  28. (type ".\LuDaShi\log\ComputerZ_HardwareDll.log" | find /i "!keyword!" || (goto top))
  29. cls
  30. @IF exist C:\OA3.BIN (
  31. for /f "tokens=3* delims=:^ " %%i in ('echo^| OEMCheckMSDM.exe ^| find "Product key:"') do set keyold=%%i
  32. if defined keyold (
  33. echo 检测到主板已写入密钥:!keyold!
  34. )
  35. )>HDinfo.ini

  36. for /f "tokens=*" %%a in ('powershell -Command "(Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty Caption)"') do set "OS=%%a"

  37. set top=[硬件参数]
  38. set DiskNumber=0
  39. set AudioNumber=0
  40. set MemoryNumber=0
  41. REM SpdOverview.=BiosWmiOverview,
  42. set Order=findstr /i /l /c:"[overviewinfowrapper] CPUName :" /c:"[memory] BiosWmiOverview," /c:"[gpuprocesser] VideoAdapter" /c:"[motherboard] GetMotherboardInfo:" /c:"[monitor] find primary monitor" /c:"[disk] ModelNumber" /c:"[network_card] GetNetworkInfo: NetworkParams.strDescription" /c:"[uldsdbhelper] Match: 6, GetDeviceName: Vendor=10EC" "LuDaShi\Log\ComputerZ_HardwareDll.log"
  43. for /f "tokens=9-12 delims=]:=" %%a in ('%Order%') do (
  44.     set str=%%a
  45.     set str=!str:~1,4!
  46.     if "!str!"=="CPUN" (
  47.         set CPUName=%%b
  48.     ) else if "!str!"=="GetM" (
  49.         set MotherboardInfo=%%b
  50.     ) else if "!str!"=="GetN" (
  51.         for /f "tokens=2 delims=[" %%i in ("%%b") do (
  52.             if not defined _%%i set /a NetworkNumber+=1
  53.             set Network%%i=%%d
  54.             set _%%i=true
  55.         )
  56.     ) else if "!str!"=="Mode" (
  57.         set Disk!DiskNumber!Number=%%c
  58.         set /a DiskNumber+=1
  59.     ) else if "!str!"=="Mult" (
  60.         for /f "tokens=2 delims=@" %%i in ("%%b") do set Audio!AudioNumber!Number=%%i
  61.         set /a AudioNumber+=1
  62.     ) else if "!str!"=="SpdO" (
  63.         for /f "tokens=2 delims=. " %%i in ("%%a") do set Memory!MemoryNumber!Name=%%d
  64.         set /a MemoryNumber+=1
  65.     ) else if "!str!"=="Vide" (
  66.         set VideoAdapter=%%b
  67.     ) else if "!str!"=="find" (
  68.         set monitor=%%b
  69.     )
  70. )
  71. (
  72. echo %top%
  73. echo SysBet=%OS%
  74. echo --------------------------------
  75. echo BIOS更新日期=!biosdate!
  76. echo 内存运行频率=!MemorySpeed!
  77. echo --------------------------------
  78. set CPUName
  79. set MemoryNumber
  80. set MemoryNumber=
  81. set Memory
  82. set VideoAdapter
  83. set MotherboardInfo
  84. set monitor
  85. set DiskNumber
  86. set DiskNumber=
  87. set Disk
  88. set NetworkNumber
  89. set NetworkNumber=
  90. set Network
  91. )>HDinfo.ini
  92. echo.
  93. echo.

  94. timeout -t 2 >nul
  95. taskkill /f /t /IM ComputerZService.exe 1>nul 2>nul
  96. taskkill /f /t /IM ComputerzService_x64.exe 1>nul 2>nul
  97. taskkill /f /t /IM hdw_disk_scan.exe 1>nul 2>nul

  98. TYPE HDinfo.ini

  99. PAUSE
复制代码
发表于 2025-8-8 16:20:47 | 显示全部楼层
回复 5# yakeyun


    建议更新到顶楼,便于其他用户查看了解使用方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 09:42 , Processed in 0.022144 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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