本帖最后由 qixiaobin0715 于 2021-11-10 09:40 编辑
回复 40# gyue
显卡信息重复是因为源文本中本身就有重复信息存在:- @echo off
- set "var=处理器: PCI/AGP 内存阵列: 网络适配器 设备信息: 系统: 类型 大小 最大时钟频率 制造商 序列号 部件号 硬件地址 型号 产品 最大内存容量 内存设备 设备描述 版本 显示适配器"
- findstr /i /r /v /c:"类型[^ ]" /c:"[^ ]版本" /c:"DAC" 硬件报告.txt>b.log
- findstr /r "%var%" b.log>a.log
- (for /f "tokens=1,2*" %%a in ('findstr /r /v "Virtual Bluetooth 芯片类型" a.log') do (
- if "%%a"=="内存设备:" (
- echo,@内存
- set m=0
- set n=0
- ) else if "%%a"=="系统:" (
- echo,系统
- set n=0
- set l=0
- ) else if "%%b"=="设备信息:" (
- echo,@ATA
- set n=0
- ) else if "%%a"=="网络适配器" (
- echo,@网络
- echo,%%a:%%b %%c
- set n=0
- ) else if "%%a"=="内存阵列:" (
- echo,@%%a
- set n=0
- ) else if "%%a"=="显示适配器:" (
- echo,@%%a
- set n=0
- ) else if "%%b"=="PCI/AGP" (
- echo,@%%b
- set n=0
- ) else if "%%a"=="处理器:" (
- echo,@%%a
- set n=0
- ) else if defined n (
- if "%%a"=="序列号" (
- echo,%%a:%%b
- if not defined m set n=&set l=
- ) else if "%%a"=="部件号" (
- echo,%%a:%%b
- set l=
- set m=
- set n=
- ) else if "%%a"=="硬件地址(MAC)" (
- echo,%%a:%%b
- set n=
- ) else if "%%a"=="内存设备" (
- echo,%%a:%%b
- set n=
- ) else if "%%a"=="显存大小" (
- echo,%%a:%%b %%c
- set n=
- ) else if "%%a"=="版本" (
- if not defined l echo,%%a:%%b %%c&set n=
- ) else if "%%a"=="制造商" (
- if not defined l echo,%%a:%%b %%c
- ) else if "%%a"=="型号" (
- echo,%%a %%b:%%c
- ) else (
- if "%%c"=="" (echo,%%a:%%b) else echo,%%a:%%b %%c
- )
- )
- ))>c.log
- set str="显示适配器 ^设备描述 ^显存大小 ^@PCI/AGP"
- setlocal enabledelayedexpansion
- (for /f "delims=" %%x in ('findstr /r /v %str% c.log') do (
- set "str1=%%x"
- if "!str1:~,1!"=="@" (
- echo,
- echo,!str1:~1!
- ) else echo,%%x
- )
- for /f "delims=" %%y in ('findstr /r %str% c.log') do (
- set "str2=%%y"
- if "!str2:~,1!"=="@" (
- echo,
- echo,!str2:~1!
- ) else echo,%%y
- ))>"%HomePath%\DeskTop\New_硬件报告.txt"
- del a.log
- del b.log
- del c.log
- pause
复制代码 最终版不再更新,有问题请自行修改。 |