807979023 发表于 2020-7-31 11:48:04

批处理如何查看驱动版本?

批处理如何查看驱动版本?
下面的批处理不通用,不同的系统注册表位置不相同。

@echo off&color 1f&echo.
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
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
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
echo.
echo 显卡名称:    %DriverDesc%
echo 驱动版本:    %DriverVersion%
echo 驱动日期:    %DriverDate%
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
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
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
echo.
echo 声卡名称:    %DriverDesc%
echo 驱动版本:    %DriverVersion%
echo 驱动日期:    %DriverDate%
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
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
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
echo.
echo 网卡名称:    %DriverDesc%
echo 驱动版本:    %DriverVersion%
echo 驱动日期:    %DriverDate%
echo.&echo 按任意键退出...&pause >nul
下面的批处理可以查看显卡驱动版本,声卡和网卡怎么写呢?

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




junyee 发表于 2020-7-31 12:55:49


wmic sounddev

wmic path Win32_networkadapter

807979023 发表于 2020-7-31 14:56:08

junyee 发表于 2020-7-31 12:55
wmic sounddev

wmic path Win32_networkadapter

谢谢解答。wmic sounddev 和 wmic path Win32_networkadapte

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

dos时代菜鸟 发表于 2020-7-31 15:33:54

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

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

然后
notepad %cd%\x.txt


就什么都知道了。

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

      if /i "%%c %%d"=="Driver Name" (
                set drvX=%%e
      )
      if /i "%%c %%d"=="Driver Version" (
                if !drvx! neq 0 (
                        echo drv_name = !drv_name!
                        echo Drv_file = !drvX!
                        echo Drv_ver= %%e
                        echo.
                )
                set drvX=0
      )
)
pause


nttwqz 发表于 2020-7-31 16:38:44

批处理之家有个纯批处理检测硬件的脚本

http://www.bathome.net/thread-38259-1-1.html

plusv 发表于 2020-7-31 17:39:14

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:44

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


plusv 发表于 2020-8-1 05:25:34

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

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







9zhmke 发表于 2020-8-1 10:05:15

用pnputil会不会更快一些?

dos时代菜鸟 发表于 2020-8-1 20:46:15

注册表位置 换成
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000

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

807979023 发表于 2020-8-2 14:25:27

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

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

页: [1]
查看完整版本: 批处理如何查看驱动版本?