需求:之前公司网管要核查每个人的电脑配置信息,所以要我写个bat文件,能够直接运行bat程序并且将每个人的电脑硬件信息生成一个txt文件返回,所以就有了下面的代码。
复制代码修改后缀为bat文件,双击即可生成电脑硬件信息文件,最后有完整的脚本,直接复制粘贴即可使用。
补充:有小伙伴反应执行之后中文乱码,切记存储文件的时候不要用utf-8存储,要用ANSI模式,就不会中文乱码了。
@echo off
color 0a
title 硬件检测
mode con cols=90
sc config winmgmt start= auto >nul 2<&1
net start winmgmt 2
setlocal ENABLEDELAYEDEXPANSION
echo 开始读取主板信息....
echo 主版:>>system.txt
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 >>system.txt
if "!tee!" == "4" echo 型 号 = %%b >>system.txt
if "!tee!" == "5" echo 序列号 = %%b>>system.txt
if "!tee!" == "6" echo 版 本 = %%b>>system.txt
)
set tee=0
echo 主板信息写入成功!
echo.
echo 开始读取BIOS信息....
echo BIOS:>>system.txt
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>>system.txt
if "!tee!" == "4" echo 制造商 = %%b>>system.txt
if "!tee!" == "5" echo 发行日期 = %%b>>system.txt
if "!tee!" == "6" echo 版 本 = %%b>>system.txt
if "!tee!" == "7" echo SMBIOSMajorVersion = %%b>>system.txt
if "!tee!" == "8" echo SMBIOSMinorVersion = %%b >>system.txt
)
set tee=0
echo BIOS信息读取成功!
echo.
echo 开始读取cpu信息....
echo CPU:>>system.txt
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>>system.txt
if "!tee!" == "4" echo 处理器版本 = %%b>>system.txt
if "!tee!" == "5" echo 外 频 = %%b>>system.txt
if "!tee!" == "6" echo 名称及主频率 = %%b>>system.txt
)
set tee=0
echo cpu信息读取成功!
echo.
echo 开始读取显示器信息....
echo 显示器:>>system.txt
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>>system.txt
if "!tee!" == "4" echo 其他信息 = %%b>>system.txt
if "!tee!" == "5" echo 屏幕高 = %%b>>system.txt
if "!tee!" == "6" echo 屏幕宽 = %%b>>system.txt
)
set tee=0
echo 显示器信息读取成功!
echo.
echo 开始读取硬盘信息...
echo 硬 盘:>>system.txt
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>>system.txt
if "!tee!" == "4" echo 硬盘型号 = %%b>>system.txt
if "!tee!" == "5" echo 分区数 = %%b>>system.txt
if "!tee!" == "6" echo 容 量 = %%b>>system.txt
if "!tee!" == "7" echo 总扇区 = %%b>>system.txt
)
echo 硬盘信息读取成功!
echo.
echo 开始读取分区信息...
echo 分区信息:>>system.txt
wmic LOGICALDISK where mediatype='12' get description,deviceid,filesystem,size,freespace
set tee=0
echo 分区信息读取成功!
echo.
echo 开始读取网卡信息...
echo 网 卡:>>system.txt
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 >>system.txt
if "!tee!" == "4" echo 网卡IP = %%b>>system.txt
if "!tee!" == "5" echo 网卡MAC = %%b>>system.txt
)
set tee=0
echo 网卡信息读取成功!
echo.
echo 开始读取打印机信息...
echo 打印机:>>system.txt
for /f "tokens=1,* delims==" %%a in ('wmic PRINTER get caption /value') do (
set /a tee+=1
if "!tee!" == "3" echo 打印机名字 = %%b>>system.txt
)
set tee=0
echo 打印机信息读取成功!
echo.
echo 开始读取声卡信息...
echo 声 卡:>>system.txt
for /f "tokens=1,* delims==" %%a in ('wmic SOUNDDEV get name^,deviceid /value') do (
set /a tee+=1
if "!tee!" == "3" echo 其他信息 = %%b>>system.txt
if "!tee!" == "4" echo 型 号 = %%b>>system.txt
)
set tee=0
echo 声卡信息读取成功!
echo.
echo 开始读取内存信息...
echo 内 存: >>system.txt
for /f "tokens=1,* delims==" %%a in ('systeminfo^|find "内存"') do (
echo %%a 4534 %%b >>system.txt
)
echo 内存信息读取成功!
echo.
echo 开始读取显卡信息....
echo 显 卡:>>system.txt
del /f "%TEMP%\temp.txt" 2>nul
dxdiag /t %TEMP%\temp.txt
:显卡
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 >>system.txt
if !tee! == 2 echo 显存大小: %%b>>system.txt
if !tee! == 3 echo 当前设置: %%b >>system.txt
) ) else (
ping /n 2 127.1>nul
goto 显卡
)
echo 显卡信息读取成功!
echo.
echo 系统信息统计完毕,文件输出为当前页面system.txt文件
pause