批处理之家's Archiver

AK47 发表于 2008-9-16 13:42

分享硬件检测批处理

很好用![code]@echo off
color 0a
title   硬件检测     
mode con cols=90
sc config winmgmt start= auto >nul 2<&1
net start winmgmt 2>1nul
setlocal ENABLEDELAYEDEXPANSION
echo 主版:
for /f "tokens=1,* delims==" %%a in ('wmic BASEBOARD get Manufacturer^,Product^,Version^,SerialNumber /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     制造商   = %%b
  if "!tee!" == "4" echo     型 号   = %%b
  if "!tee!" == "5" echo     序列号   = %%b
  if "!tee!" == "6" echo     版 本   = %%b
)
set tee=0
echo     BIOS:
for /f "tokens=1,* delims==" %%a in ('wmic bios get
CurrentLanguage^,Manufacturer^,SMBIOSBIOSVersion^,SMBIOSMajorVersion^,SMBIOSMinorVersion^,ReleaseDate /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     当前语言 = %%b
  if "!tee!" == "4" echo     制造商   = %%b
  if "!tee!" == "5" echo     发行日期 = %%b
  if "!tee!" == "6" echo     版 本   = %%b
  if "!tee!" == "7" echo     SMBIOSMajorVersion = %%b
  if "!tee!" == "8" echo     SMBIOSMinorVersion = %%b
)
set tee=0
echo.
echo CPU:
for /f "tokens=1,* delims==" %%a in ('wmic cpu get name^,ExtClock^,CpuStatus^,Description /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     CPU个数   = %%b
  if "!tee!" == "4" echo     处理器版本   = %%b
  if "!tee!" == "5" echo     外   频   = %%b
  if "!tee!" == "6" echo     名称及主频率   = %%b
)
set tee=0
echo.
echo 显示器:
for /f "tokens=1,* delims==" %%a in ('wmic DESKTOPMONITOR get name^,ScreenWidth^,ScreenHeight^,PNPDeviceID /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     类   型 = %%b
  if "!tee!" == "4" echo     其他信息 = %%b
  if "!tee!" == "5" echo     屏幕高   = %%b
  if "!tee!" == "6" echo     屏幕宽   = %%b
)
set tee=0
echo.
echo 硬 盘:
for /f "tokens=1,* delims==" %%a in ('wmic DISKDRIVE get model^,interfacetype^,size^,totalsectors^,partitions /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     接口类型 = %%b
  if "!tee!" == "4" echo     硬盘型号 = %%b
  if "!tee!" == "5" echo     分区数   = %%b
  if "!tee!" == "6" echo     容   量 = %%b
  if "!tee!" == "7" echo     总扇区   = %%b
)
echo 分区信息:
wmic LOGICALDISK where mediatype='12' get description,deviceid,filesystem,size,freespace
set tee=0
echo.
echo 网 卡:
for /f "tokens=1,* delims==" %%a in ('wmic NICCONFIG where "index='1'" get ipaddress^,macaddress^,description /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     网卡类型 = %%b
  if "!tee!" == "4" echo     网卡IP   = %%b
  if "!tee!" == "5" echo     网卡MAC   = %%b
)
set tee=0
echo.
echo 打印机:
for /f "tokens=1,* delims==" %%a in ('wmic PRINTER get caption /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     打印机名字 = %%b
)
set tee=0
echo.
echo 声   卡:
for /f "tokens=1,* delims==" %%a in ('wmic SOUNDDEV get name^,deviceid /value') do (
  set /a tee+=1
  if "!tee!" == "3" echo     其他信息 = %%b
  if "!tee!" == "4" echo     型   号 = %%b
)
set tee=0
echo.
echo 内   存:
for /f "tokens=1,* delims==" %%a in ('systeminfo^|find "内存"') do (
  echo       %%a 4534 %%b
)
echo.
echo 显   卡:
del /f "%TEMP%\temp.txt" 2>nul
dxdiag /t %TEMP%\temp.txt
:显卡
rem 这里需要30秒左右!
if EXIST "%TEMP%\temp.txt" (
  for /f "tokens=1,2,* delims=:" %%a in ('findstr /c:" Card name:" /c:"Display Memory:" /c:"Current Mode:" "%TEMP%\temp.txt"') do (
      set /a tee+=1
      if !tee! == 1 echo   显卡型号: %%b
      if !tee! == 2 echo   显存大小: %%b
      if !tee! == 3 echo   当前设置: %%b
)   ) else (
  ping /n 2 127.1>nul
  goto 显卡
)
set /p var=需要额外信息吗(y/n):
if /i %var% == y notepad "%TEMP%\temp.txt"
del /f "%TEMP%\temp.txt" 2>nul
pause[/code]

ynkm0871 发表于 2009-6-19 14:10

谢谢楼主的辛勤劳动,支持!

athinko 发表于 2009-10-11 12:05

谢谢楼主
的分享。

athinko 发表于 2009-10-21 22:18




支持了

wsmrb 发表于 2009-11-9 21:58

很好的帖子。学习了啊

wjguowei 发表于 2009-11-17 22:45

高人呀!

太感谢了。太有用了,!!谢谢

5566ljlj 发表于 2009-11-25 22:29

还是WMIC命令强大啊!

wanfcl83 发表于 2009-12-7 00:33

顶个楼主 (*^__^*) 嘻嘻……

yangwenzheng 发表于 2010-1-29 16:35

问楼主,我把驱动程序卸载了,就不能识别了1!!?!?!?这是为什么?

hfg1977 发表于 2010-4-9 21:53

把硬盘那里改了一下,以适用多硬盘qingkuang"[code]echo.
echo 硬 盘:
set "model=硬盘型号 ="&set "interfacetype=接口类型 ="&set "partitions=分区数   ="&set "size=容   量  ="
for /f "tokens=1,* delims==" %%a in ('wmic DISKDRIVE get model^,interfacetype^,size^,partitions /value^|more +2') do echo. !%%a!%%b[/code]

cyxly 发表于 2010-6-12 17:50

楼主辛苦了,那么多代码。顶!好贴,谢谢分享。

junwalo 发表于 2010-7-7 10:54

顶了,学习中,谢谢各位。。。。。

猪猪你个羊羊 发表于 2011-8-3 00:59

找了很久终于找到了!!谢谢楼主
同时也谢谢bat-Batcher兄弟提供的信息

hnfeng 发表于 2012-4-27 13:54

强大的很
谢谢分享,收藏了

laolong 发表于 2013-11-19 08:47

太有用了,!!谢谢

re168 发表于 2016-7-2 18:08

矮油、、非常感谢楼主的分享!支持...

zisss 发表于 2017-1-23 11:43

多謝樓主  可用於子批次檔調用  真的很方便

oichen 发表于 2017-1-28 23:46

请问winmgnt 2代表什么?
是不是一共分为1~9?

cc5511 发表于 2020-8-29 02:54

[quote]把硬盘那里改了一下,以适用多硬盘qingkuang"
[size=2][color=#999999]hfg1977 发表于 2010-4-9 21:53[/color] [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=49245&ptid=1850][img]http://bbs.bathome.net/images/common/back.gif[/img][/url][/size][/quote]


    你这代码写得真好 不啰嗦 效率高

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.