标题: [系统相关] [已解决]收集系统信息的批处理,但运行结果不完整,求帮助 [打印本页]
作者: cocn2002 时间: 2015-3-26 15:00 标题: [已解决]收集系统信息的批处理,但运行结果不完整,求帮助
本帖最后由 cocn2002 于 2015-3-26 19:46 编辑
在坛子里翻到一个前辈发的关于收集系统信息的批处理,用后发现部分缺少运行结果,恳求帮助完善下,使其可以完整显示,我使用的操作系统WIN7 64位
下面是批处理的内容+运行结果
内容:- @echo off
- color 0a
- title 硬件检测
- mode con cols=40 lines=10
- sc config winmgmt start= auto >nul 2<&1
- net start winmgmt 2>nul
- setlocal ENABLEDELAYEDEXPANSION
- set file=!computername!.txt
- set txt=info.tmp
- if exist !file! del !file!
- cls
- echo.
- echo 正在收集硬件信息中,请稍候......
- echo --------------------------------
- echo ┏━━━━━━━━━━━━━━━┓
- echo ┃ !!!请勿关闭本程序!!! ┃
- echo ┃ 如果程序打扰了您的工作 ┃
- echo ┃ 请把程序最小化 ┃
- echo ┗━━━━━━━━━━━━━━━┛
- echo --------------------------------
- ::从DXDIAG里获取主机型号、CPU、内存信息
- dxdiag /t !txt!
- for /f "tokens=2 delims=:" %%i in ('type !txt! ^| findstr /i /c:"System Model"') do set XH=%%i
- for /f "tokens=2 delims=:" %%i in ('type !txt! ^| findstr /i /c:" Processor:"') do set CPU=%%i
- for /f "tokens=2 delims=:" %%i in ('type !txt! ^| findstr /c:" Memory:"') do set NC=%%i
- ::内存容量取整
- set /a mmem=!NC:~0,-6!
- if !mmem! LEQ 800 set mem=!mmem!MB
- if !mmem! LEQ 1250 (
- if !mmem! GEQ 850 (
- set mem=1G
- )
- )
- if !mmem! LEQ 1750 (
- if !mmem! GEQ 1250 (
- set mem=1.5G
- )
- )
- if !mmem! LEQ 2250 (
- if !mmem! GEQ 1750 (
- set mem=2G
- )
- )
- if !mmem! GEQ 3250 set mem=4G
- ::用WMIC命令获取硬盘型号与硬盘容量
- for /f "skip=1 tokens=*" %%i in ('wmic DISKDRIVE get caption') do (
- if not "%%i"=="" (set/a n+=1&set HDD!n!=%%i)
- )
- for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get size') do call set 硬盘大小=!!硬盘大小!! %%i
- for /f "tokens=1,2,3,4" %%i in ("!硬盘大小!") do call set Size1=%%i&set Size2=%%j&set Size3=%%k&set Size4=%%l
- ::硬盘容量取整
- set /a Size1=!Size1:~0,-9!
- set /a Size2=!Size2:~0,-9!
- set /a Size3=!Size3:~0,-9!
- set /a Size4=!Size4:~0,-9!
- if !Size1:~-1! LEQ 9 (
- if !Size1:~-1! GEQ 1 (
- set /a size1=!size1!+1
- )
- )
- if !Size2:~-1! LEQ 9 (
- if !Size2:~-1! GEQ 1 (
- set /a size2=!size2!+1
- )
- )
- if !Size3:~-1! LEQ 9 (
- if !Size3:~-1! GEQ 1 (
- set /a size3=!size3!+1
- )
- )
- if !Size4:~-1! LEQ 9 (
- if !Size4:~-1! GEQ 1 (
- set /a size4=!size4!+1
- )
- )
- if !Size1! GEQ 40 set /a size1=!size1!-!Size1:~-1!
- if !Size2! GEQ 40 set /a size2=!size2!-!Size2:~-1!
- if !Size3! GEQ 40 set /a size3=!size3!-!Size3:~-1!
- if !Size4! GEQ 40 set /a size4=!size4!-!Size4:~-1!
- if !Size2! LEQ 39 set /a size2=!size2!-1
- if !Size3! LEQ 39 set /a size3=!size3!-1
- if !Size4! LEQ 39 set /a size4=!size4!-1
- if !size1! GEQ 0 (set size1=!size1!G) else set "size1= "
- if !size2! GEQ 0 (set size2=!size2!G) else set "size2= "
- if !size3! GEQ 0 (set size3=!size3!G) else set "size3= "
- if !size4! GEQ 0 (set size4=!size4!G) else set "size4= "
- ::获取IP等信息及WMIC取显卡、声卡型号
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"IP Address"') do set IP=%%i
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"Subnet Mask"') do set Subnet=%%i
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"Physical Address"') do set mac=%%i
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"Default Gateway"') do set gateway=%%i
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"DNS Servers"') do set dns=%%i
- for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:"Description"') do set netcard=%%i
- for /f "skip=1 delims=" %%i in ('wmic SOUNDDEV get ProductName') do set SOUND=%%i
- for /f "tokens=1,2 delims==" %%a in ('wmic path Win32_VideoController get AdapterRAM^,Name /value^|findstr "AdapterRAM Name"') do set Video=%%b
- ::输出到文件并清除临时文件
- echo.>>!file!
- echo 计算机名: !computername!>>!file!
- echo 主机型号: !XH!>>!file!
- echo CPU 相关: !CPU!>>!file!
- echo 内存总量: !mem!>>!file!
- if not "!HDD1!"=="" echo 硬盘1型号: !HDD1:~0,-2!>>!file!
- if not "!HDD1!"=="" echo 硬盘1容量: !size1!>>!file!
- if not "!HDD2!"=="" echo 硬盘2型号: !HDD2:~0,-2!>>!file!
- if not "!HDD2!"=="" echo 硬盘2容量: !size2!>>!file!
- if not "!HDD3!"=="" echo 硬盘3型号: !HDD3:~0,-2!>>!file!
- if not "!HDD3!"=="" echo 硬盘3容量: !size3!>>!file!
- if not "!HDD4!"=="" echo 硬盘4型号: !HDD4:~0,-2!>>!file!
- if not "!HDD4!"=="" echo 硬盘4容量: !size4!>>!file!
- echo 声卡型号: !SOUND!>>!file!
- echo 显卡型号: !Video!>>!file!
- echo 网卡型号: !netcard!>>!file!
- echo MAC 地址: !mac!>>!file!
- echo I P 地址: !IP!>>!file!
- echo 子网掩码: !Subnet!>>!file!
- echo 网 关: !gateway!>>!file!
- echo D N S : !dns!>>!file!
- echo.>>!file!
- echo.>>!file!
- echo 下面是DXDIAG生成的信息。>>!file!
- echo.>>!file!
- type !txt!>>!file!
- del /f !txt!
- exit
复制代码
运行结果:
计算机名: PC201409021524
主机型号:
CPU 相关:
内存总量: -1MB
硬盘1型号: HDS722580VLAT20 ATA Device
硬盘1容量: 80G
硬盘2型号: ST3160815AS ATA Device
硬盘2容量: 160G
硬盘3型号:
硬盘3容量:
声卡型号:
显卡型号: Intel(R) G41 Express Chipset
网卡型号:
MAC 地址:
I P 地址:
子网掩码:
网 关:
D N S :
下面是DXDIAG生成的信息。
作者: pcl_test 时间: 2015-3-26 18:17
本帖最后由 pcl_test 于 2015-3-26 18:27 编辑
回复 1# cocn2002
上传一份生成的 系统信息 txt文件看看,看情况你电脑是禁用了DirectX诊断工具,在开始菜单的运行里或是命令提示符里输入dxdiag ,回车后看看能否打开DirectX诊断工具
作者: cocn2002 时间: 2015-3-26 18:26
您好! 运行结果内就是所生成的TXT文件内容
计算机名: PC201409021524
主机型号:
CPU 相关:
内存总量: -1MB
硬盘1型号: HDS722580VLAT20 ATA Device
硬盘1容量: 80G
硬盘2型号: ST3160815AS ATA Device
硬盘2容量: 160G
硬盘3型号:
硬盘3容量:
声卡型号:
显卡型号: Intel(R) G41 Express Chipset
网卡型号:
MAC 地址:
I P 地址:
子网掩码:
网 关:
D N S :
下面是DXDIAG生成的信息。
作者: cocn2002 时间: 2015-3-26 18:28
可以的显示directx 诊断工具的
作者: cocn2002 时间: 2015-3-26 18:32
系统在运行批处理过程时,DOS窗口会在下面内容后显示3行:系统找不到指定的文件 的信息
┏━━━━━━━━━━━━━━━┓
┃ !!!请勿关闭本程序!!! ┃
┃ 如果程序打扰了您的工作 ┃
┃ 请把程序最小化 ┃
┗━━━━━━━━━━━━━━━┛
作者: pcl_test 时间: 2015-3-26 18:33
回复 4# cocn2002
运行该命令,把生成的txt文件上传看看,生成需要一些时间- dxdiag /t D:\DirectX诊断.txt
复制代码
作者: cocn2002 时间: 2015-3-26 18:39
有641行,全部都贴上来吗?
作者: pcl_test 时间: 2015-3-26 18:41
回复 7# cocn2002
用附件上传txt文件
作者: cocn2002 时间: 2015-3-26 18:48
上传了 请看看
作者: pcl_test 时间: 2015-3-26 19:02
本帖最后由 pcl_test 于 2015-3-26 19:04 编辑
回复 9# cocn2002
先看看这样能不能获取- @echo off
- color 0a
- title 硬件检测
- mode con cols=40 lines=10
- sc config winmgmt start= auto >nul 2<&1
- net start winmgmt 2>nul
- setlocal ENABLEDELAYEDEXPANSION
- set "file=!COMPUTERNAME!.txt"
- set "txt=$info.tmp"
- if exist !file! del !file!
- cls
- echo.
- echo 正在收集硬件信息中,请稍候……
- echo --------------------------------
- echo ┏━━━━━━━━━━━━━━┓
- echo ┃ !!!请勿关闭本程序!!!┃
- echo ┃ 如果程序打扰了您的工作 ┃
- echo ┃ 请把程序最小化 ┃
- echo ┗━━━━━━━━━━━━━━┛
- echo --------------------------------
- ::从DXDIAG里获取主机型号、CPU、内存信息
- dxdiag /t !txt!
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /i /c:" System Model:"') do set XH=%%i
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /i /c:" Processor:"') do set CPU=%%i
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /c:" Memory:"') do set NC=%%i
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /c:"Available OS Memory:"') do set ANC=%%i
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /c:" Operating System:"') do set OS=%%i
- for /f "tokens=2 delims=:" %%i in ('type "!txt!" ^| findstr /c:" DirectX Version:"') do set DX=%%i
- ::内存容量取整
- set /a mmem=!NC:~0,-6!
- if !mmem! LEQ 1024 (
- set mem=!mmem!MB
- ) else (
- set /a mem=!mmem!*10/1024
- set mem=!mem:~,-1!.!mem:~-1!GB
- )
- set /a ammem=!ANC:~0,-6!
- if !ammem! LEQ 1024 (
- set amem=!ammem!MB
- ) else (
- set /a amem=!ammem!*10/1024
- set amem=!amem:~,-1!.!amem:~-1!GB
- )
- ::用WMIC命令获取硬盘型号与硬盘容量
- for /f "skip=1 tokens=*" %%i in ('wmic DISKDRIVE get caption') do (
- if not "%%i"=="" (set/a n+=1&set HDD!n!=%%i)
- )
- for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get size') do call set 硬盘大小=!!硬盘大小!! %%i
- for /f "tokens=1,2,3,4" %%i in ("!硬盘大小!") do call set Size1=%%i&set Size2=%%j&set Size3=%%k&set Size4=%%l
- ::硬盘容量取整
- set /a Size1=!Size1:~0,-9!
- set /a Size2=!Size2:~0,-9!
- set /a Size3=!Size3:~0,-9!
- set /a Size4=!Size4:~0,-9!
- if !Size1:~-1! LEQ 9 (
- if !Size1:~-1! GEQ 1 (
- set /a size1=!size1!+1
- )
- )
- if !Size2:~-1! LEQ 9 (
- if !Size2:~-1! GEQ 1 (
- set /a size2=!size2!+1
- )
- )
- if !Size3:~-1! LEQ 9 (
- if !Size3:~-1! GEQ 1 (
- set /a size3=!size3!+1
- )
- )
- if !Size4:~-1! LEQ 9 (
- if !Size4:~-1! GEQ 1 (
- set /a size4=!size4!+1
- )
- )
- if !Size1! GEQ 40 set /a size1=!size1!-!Size1:~-1!
- if !Size2! GEQ 40 set /a size2=!size2!-!Size2:~-1!
- if !Size3! GEQ 40 set /a size3=!size3!-!Size3:~-1!
- if !Size4! GEQ 40 set /a size4=!size4!-!Size4:~-1!
- if !Size2! LEQ 39 set /a size2=!size2!-1
- if !Size3! LEQ 39 set /a size3=!size3!-1
- if !Size4! LEQ 39 set /a size4=!size4!-1
- if !size1! GEQ 0 (set size1=!size1!G) else set "size1= "
- if !size2! GEQ 0 (set size2=!size2!G) else set "size2= "
- if !size3! GEQ 0 (set size3=!size3!G) else set "size3= "
- if !size4! GEQ 0 (set size4=!size4!G) else set "size4= "
- ::获取IP等信息及WMIC取显卡、声卡型号
- for /f "skip=1 delims=" %%i in ('wmic SOUNDDEV get ProductName ^|findstr .') do set SOUND=%%i
- for /f "tokens=1,2 delims==" %%a in ('wmic path Win32_VideoController get AdapterRAM^,Name /value^|findstr "AdapterRAM Name"') do set Video=%%b
- ::输出到文件并清除临时文件
- (echo.
- echo 当前用户: !USERNAME!
- echo 计算机名: !COMPUTERNAME!
- echo 系统相关: !OS!
- echo 主机型号: !XH!
- echo CPU 相关: !CPU!
- echo 内存总量: !mem!
- echo 可用内存: !amem!
- echo DirectX版本: !DX!
- if not "!HDD1!"=="" echo 硬盘1型号: !HDD1:~0,-2!
- if not "!HDD1!"=="" echo 硬盘1容量: !size1!
- if not "!HDD2!"=="" echo 硬盘2型号: !HDD2:~0,-2!
- if not "!HDD2!"=="" echo 硬盘2容量: !size2!
- if not "!HDD3!"=="" echo 硬盘3型号: !HDD3:~0,-2!
- if not "!HDD3!"=="" echo 硬盘3容量: !size3!
- if not "!HDD4!"=="" echo 硬盘4型号: !HDD4:~0,-2!
- if not "!HDD4!"=="" echo 硬盘4容量: !size4!
- echo 声卡型号: !SOUND!
- echo 显卡型号: !Video!
- echo.)>"!file!"
- exit
复制代码
作者: cocn2002 时间: 2015-3-26 19:06
您好! 运行结果:
当前用户: Administrator
计算机名: PC201409021524
系统相关: Windows_NT
主机型号:
CPU 相关:
内存总量: -1MB
可用内存: -1MB
DirectX版本:
硬盘1型号: HDS722580VLAT20 ATA Device
硬盘1容量: 80G
硬盘2型号: ST3160815AS ATA Device
硬盘2容量: 160G
硬盘3型号:
硬盘3容量:
声卡型号: Parallels Access Sound Controller
显卡型号: Intel(R) G41 Express Chipset
作者: pcl_test 时间: 2015-3-26 19:20
本帖最后由 pcl_test 于 2015-3-26 19:25 编辑
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- echo waiting……
- set "file=!COMPUTERNAME!.txt"
- if exist !file! del !file!
- ::从DXDIAG里获取主机型号、CPU、内存信息
- dxdiag /t $.txt
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /i /c:" System Model:"') do set XH=%%i
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /i /c:" Processor:"') do set CPU=%%i
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /c:" Memory:"') do set NC=%%i
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /c:"Available OS Memory:"') do set ANC=%%i
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /c:" Operating System:"') do set OS=%%i
- for /f "tokens=2 delims=:" %%i in ('type $.txt ^| findstr /c:" DirectX Version:"') do set DX=%%i
- ::内存容量取整
- set /a mmem=!NC:~0,-6!
- if !mmem! LEQ 1024 (
- set mem=!mmem!MB
- ) else (
- set /a mem=!mmem!*10/1024
- set mem=!mem:~,-1!.!mem:~-1!GB
- )
- set /a ammem=!ANC:~0,-6!
- if !ammem! LEQ 1024 (
- set amem=!ammem!MB
- ) else (
- set /a amem=!ammem!*10/1024
- set amem=!amem:~,-1!.!amem:~-1!GB
- )
- echo 当前用户: !USERNAME!
- echo 计算机名: !COMPUTERNAME!
- echo 系统相关: !OS!
- echo 主机型号: !XH!
- echo CPU 相关: !CPU!
- echo 内存总量: !mem!
- echo 可用内存: !amem!
- echo DirectX版本: !DX!
- pause
复制代码
回复 11# cocn2002
作者: cocn2002 时间: 2015-3-26 19:43
pcl_test 非常非常感谢你的支持!!!
我在其他PC上测试源批处理为正常,只是中间要过杀毒软件
而本机直到最后还出错的原因我想是我自己的操作系统有问题
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |