无忧启动论坛

标题: 批处理如何查看驱动版本? [打印本页]

作者: 807979023    时间: 2020-7-31 11:48
标题: 批处理如何查看驱动版本?
批处理如何查看驱动版本?
下面的批处理不通用,不同的系统注册表位置不相同。

  1. @echo off&color 1f&echo.
  2. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverDesc"') do set DriverDesc=%%j
  3. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverVersion"') do set DriverVersion=%%j
  4. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverDate"') do set DriverDate=%%j
  5. echo.
  6. echo 显卡名称:    %DriverDesc%
  7. echo 驱动版本:    %DriverVersion%
  8. echo 驱动日期:    %DriverDate%
  9. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-BFC1-08002be10318}\0000" /v "DriverDesc"') do set DriverDesc=%%j
  10. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverVersion"') do set DriverVersion=%%j
  11. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverDate"') do set DriverDate=%%j
  12. echo.
  13. echo 声卡名称:    %DriverDesc%
  14. echo 驱动版本:    %DriverVersion%
  15. echo 驱动日期:    %DriverDate%
  16. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverDesc"') do set DriverDesc=%%j
  17. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverVersion"') do set DriverVersion=%%j
  18. for /f "tokens=2,*" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0000" /v "DriverDate"') do set DriverDate=%%j
  19. echo.
  20. echo 网卡名称:    %DriverDesc%
  21. echo 驱动版本:    %DriverVersion%
  22. echo 驱动日期:    %DriverDate%
  23. echo.&echo 按任意键退出...&pause >nul
复制代码
下面的批处理可以查看显卡驱动版本,声卡和网卡怎么写呢?

  1. @echo off&color 1f&echo.
  2. setlocal enabledelayedexpansion
  3. set /a Row=0
  4. for /f "tokens=2 delims==" %%i in ('Wmic Path Win32_VideoController Get Name^,DriverDate^,DriverVersion /value 2^>nul') do (
  5.   set /a Row+=1
  6.   if !Row! == 1  set Name=%%i
  7.   if !Row! == 2  set DriverDate=%%i
  8.   if !Row! == 3  set DriverVersion=%%i
  9. )
  10. echo 显卡名称:    %DriverVersion%
  11. echo 驱动版本:    %DriverDate%
  12. echo 驱动日期:    %Name:~0,4%.%Name:~4,2%.%Name:~6,2%
  13. echo.&echo 按任意键退出...&pause >nul

复制代码




作者: junyee    时间: 2020-7-31 12:55

wmic sounddev

wmic path Win32_networkadapter

作者: 807979023    时间: 2020-7-31 14:56
junyee 发表于 2020-7-31 12:55
wmic sounddev

wmic path Win32_networkadapter

谢谢解答。wmic sounddev wmic path Win32_networkadapte

只查到声卡网卡名称,没有驱动版本

作者: dos时代菜鸟    时间: 2020-7-31 15:33
本帖最后由 dos时代菜鸟 于 2020-7-31 16:30 编辑

cmd 下运行
dxdiag /t %cd%\x.txt

然后
notepad %cd%\x.txt


就什么都知道了。

下面这个 主要看  第三方  显卡 声卡
  1. @echo off
  2. setlocal  ENABLEDELAYEDEXPANSION
  3. if not exist "%temp%\dxdiag.txt" dxdiag /t "%temp%\dxdiag.txt"
  4. set /a ln=0
  5. for /f "tokens=1,2* delims=: " %%c in ('type "%temp%\dxdiag.txt"') do (
  6.         if /i "%%c %%d"=="Operating System" (
  7.                 echo.
  8.                 echo Operating System = %%e
  9.                 echo.
  10.         )
  11.         set Xc=%%c
  12.         if "!Xc:~0,1!"=="-"  set /a ln=!ln!+1
  13.         if !ln! equ 2 set /a ln=0
  14.         if !ln! equ 1 set drv_name=%%c %%d %%e

  15.         if /i "%%c %%d"=="Driver Name" (
  16.                 set drvX=%%e
  17.         )
  18.         if /i "%%c %%d"=="Driver Version" (
  19.                 if !drvx! neq 0 (
  20.                         echo drv_name = !drv_name!
  21.                         echo Drv_file = !drvX!
  22.                         echo Drv_ver  = %%e
  23.                         echo.
  24.                 )
  25.                 set drvX=0
  26.         )
  27. )
  28. pause
复制代码




作者: nttwqz    时间: 2020-7-31 16:38
批处理之家有个纯批处理检测硬件的脚本

http://www.bathome.net/thread-38259-1-1.html
作者: plusv    时间: 2020-7-31 17:39
dos时代菜鸟 发表于 2020-7-31 15:33
cmd 下运行
dxdiag /t %cd%\x.txt

必需修改才能运行.

if not exist "%temp%\dxdiag.txt" dxdiag /t %temp%\dxdiag.txt
:MyWait
if not exist "%temp%\dxdiag.txt" goto MyWait


作者: 807979023    时间: 2020-7-31 21:00
谢谢各位回复。
这个 DxDiag /t 太慢了,没有网卡驱动版本的信息。
声卡驱动日期与设备管理器中不同,批处理之家那个bat也是这样。
最准确的信息在注册表,但无法确定位置。



作者: plusv    时间: 2020-8-1 05:25
807979023 发表于 2020-7-31 21:00
谢谢各位回复。
这个 DxDiag /t 太慢了,没有网卡驱动版本的信息。
声卡驱动日期与设备管理器中不同,批 ...

要准确的可以直接去读取驱动文件,
自行网上找看有没命令行版本.








作者: 9zhmke    时间: 2020-8-1 10:05
用pnputil会不会更快一些?
作者: dos时代菜鸟    时间: 2020-8-1 20:46
注册表位置 换成
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000

看看,有没有。
因为我看到我这里 的 CurrentControlSet 是 ControlSet001 的一个符号链接而已,而有的系统 可能 并没有被建立。

作者: 807979023    时间: 2020-8-2 14:25
dos时代菜鸟 发表于 2020-8-1 20:46
注册表位置 换成
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-080 ...

谢谢回复

子项  HKLM\SYSTEM\ControlSet001\...  与  HKLM\SYSTEM\CurrentControlSet\...  差不多,

所有系统的以下位置都是一样:
显  HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}
声  HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}
网  HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

但是最后的子项不同,我这里显声网:
xp是 0000 0005 0001
win7x32 是 0000 0000 0009
另一版本win7x32 x64 是 0000 0000 0007
win10x32 x64 是 0000 0000 0000

可能电脑不同,位置又不同,因为有的已升级驱动,需要确定正在使用的是哪个子项。






欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3