• 【中国梦·大国工匠篇】鸡蛋上钻孔显真功 潜心坚守一线练就绝活儿 2019-06-11
  • 【理上网来·喜迎十九大】塞尔维亚驻华大使:中国的发展是其他国家望尘莫及的 2019-06-10
  • 六大工程培育发展新动能 2019-06-10
  • 为推动上合组织发展提供中国智慧、中国方案 2019-05-29
  • 覆盖31亿人口!一图告诉你上合组织有多牛 2019-05-28
  • 德味手表了解一下 徕卡推出L1,L2机械表德味手表徕卡推出L1-手机行情 2019-05-28
  • 西部网(陕西新闻网)www.cnwest.com 2019-05-27
  • 穿越千年 感悟周公 2019-05-27
  • 2017年度一级建造师考试成绩已发布 2019-05-27
  • 【大考2018】2018高考首日众生相(组图) 2019-05-27
  • 浙江舟山定海区一国企非党管理人员涉嫌受贿被查 2019-05-23
  • 让山里娃感受智慧科技乐趣 2019-05-19
  • 香港田径锦标赛飞人夺冠 2019-05-19
  • 诽谤侮辱英烈可追刑责 2019-05-14
  • 图解:十二字“洞见”2017年保险业 2019-04-28
  • 批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
    [批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
    返回列表 发帖

    广东十一选五推荐:[系统增强] 原创首发,纯批处理获取硬件信息

    本帖最后由 winload 于 2018-6-29 18:30 编辑

    首先声明:本程序尚未完善,依然在调试中,以后会根据大家的测试结果不断更新优化(目前核心代码基本完善)!
    由于原创区需要一定的权限才能发表原创作品 实在没办法所以在这里发布,望管理员见谅!
    本程序特性:
    1.运行环境判断,若自身被修改则自动闪退;若PE环境则提示并指引退出;若虚拟机环境则提示信息获取可能不准;若非管理员权限或系统严重精简也会截取并提示。
    2.关于硬盘、内存容量的计算方面支持 字节 KB MB GB TB PB EB ZB YB NB DB 并且支持超大的DB容量几乎完美
    3.网卡,声卡,光驱,若被卸载  生成详细信息时则不会写入文件 若禁用 生成时 会显示已被禁用 总之程序智能判断(智能算法还会大幅优化)
    本程序以后改进项:
    1.信息获取的准确性,这个最重要 也是必须的 (实在不行甚至可以依赖三方)
    2.增加系统方面的详细信息 比如初始安装日期,开机到现在已经多久时间,等等.....
    3.增加品牌库 以中文显示硬盘,主板,内存,显示器等信息 (精力问题可能会保留)
    4.硬件跑分和cpu 温度实时监测 (这个功能难度较大,主要是想模仿鲁大师)

    以下是最新版本,不用后翻。
    更新内容:
    1.解决了显存在简要信息中产生的闪退(这个问题很多人私下反映,笔者本无心再次优化或完善,无奈个别网友热情,花了时间查找问题所在。)
    2.增加详细信息生产的完善程度
    3.此次编辑日期2018年06月29日,不代表是今天完成的代码优化。早些时候已经完成,今天得空前来更新。
    最后声明:本程序非完善版 ,希望大家测试并提供BUG截图 以后会根据大家的测试结果不断更新,
    本人QQ:540044977 欢迎志同道合的朋友前来交流。
    以下是代码:
     广东十一选五计划软件 www.qe-ar.com 
    1. @echo off
    2. call :Inspect
    3. title 获取硬件信息 - 正在获取相关信息,请稍等...
    4. call :Net
    5. Setlocal EnableDelayedExpansion
    6. echo !Tit!
    7. echo .............................................................
    8. echo.
    9. if not exist "%Temp%\DxDiag.txt" DxDiag /t %Temp%\DxDiag.txt
    10. :DxDiag
    11. if exist "%Temp%\DxDiag.txt" (
    12. Attrib +h %Temp%\DxDiag.txt
    13. Ping 127.1 >nul
    14. for /f "tokens=2 delims=:" %%i in ('FINDSTR /IC:"Operating System: " %Temp%\DxDiag.txt') do (
    15. for /f "delims=(" %%j in ("%%i") do set OS=%%j
    16. )
    17. ) else (ping 127.1 >nul
    18. goto :DxDiag
    19. )
    20. title 获取硬件信息 - %OS%
    21. for /f "tokens=2 delims=:" %%i in ('FINDSTR /IC:"Processor: " %Temp%\DxDiag.txt') do set CPU=%%i
    22. echo.CPU  .......%CPU%
    23. echo.
    24. for /f "tokens=2 delims==" %%i in ('Wmic Baseboard Get Manufacturer /Value') do set Manufacturer=%%i
    25. for /f "tokens=2 delims==" %%i in ('Wmic Baseboard Get Product /Value') do set Product=%%i
    26. echo.主板 ....... %Manufacturer%   (%Product%)
    27. echo.
    28. for /f %%i in ('Wmic Path Win32_PhysicalMemory Get BankLabel^|find /i /c "Bank"') do set N.3=%%i
    29. set /a N.3-=1
    30. set Size.1=0
    31. for /f "skip=1 delims=" %%i in ('Wmic Path Win32_PhysicalMemory Get Capacity') do (
    32. set Memory=%%i
    33. call :Addition !Memory! !Size.1! Size.1
    34. )
    35. call :GetSize !Size.1! Size.1
    36. if "!Size.1:~-5,3!"==".00" set Size.1=!Size.1:~0,-5! !Size.1:~-2!
    37. echo.内存 ....... %N.3% 条   %Size.1%
    38. echo.
    39. for /f "tokens=2 delims==" %%i in ('Wmic DiskDrive Get Model /Value^|find /i /v "USB"') do (
    40. set /a N.4+=1
    41. if !N.4! Equ 1 set FirstDisk=%%i
    42. )
    43. echo.硬盘 ....... %N.4% 块   %FirstDisk% (主)
    44. echo.
    45. for /f "tokens=2 delims==" %%i in ('Wmic Path Win32_VideoController Get Name^,AdapterRam^,AdapterCompatibility^,DriverDate^,DriverVersion^,VideoProcessor /Value') do (
    46. set /a N.5+=1
    47. if !N.5! == 1 set AdapterCompatibility=%%i
    48. if !N.5! == 2 set AdapterRam=%%i
    49. if !N.5! == 3 set DriverDate=%%i
    50. if !N.5! == 4 set DriverVersion=%%i
    51. if !N.5! == 5 set Name=%%i
    52. if !N.5! == 6 set VideoProcessor=%%i
    53. )
    54. if "%AdapterRam%"=="" (set AdapterRam=无法获取显存) else (
    55. call :GetSize %AdapterRam% AdapterRam
    56. if "!AdapterRam:~-5,3!"==".00" set AdapterRam=!AdapterRam:~0,-5! !AdapterRam:~-2!
    57. )
    58. set DriverDate=%DriverDate:~0,4% 年 %DriverDate:~4,2% 月 %DriverDate:~6,2% 日
    59. echo.显卡 ....... %Name%
    60. echo.
    61. for /f "tokens=2 delims==" %%i in ('Wmic DesktopMonitor Get PNPDeviceID /Value') do (
    62. for /f "delims=\ tokens=2" %%j in ("%%i") do set DisplayName=%%j
    63. )
    64. for /f "tokens=2 delims=:" %%i in ('find /i "current mode" %Temp%\DxDiag.txt') do set Resolution=%%i
    65. if "%DisplayName%"=="" (echo.屏幕 .......!Resolution!) else (echo.屏幕 ....... !DisplayName! !Resolution!)
    66. echo.
    67. for /f "delims== tokens=2" %%i in ('Wmic Path Win32_CDRomDrive Get Name /Value 2^>nul') do (
    68. set /a N.6+=1
    69. if !N.6! Equ 1  set CD-ROM.1=%%i
    70. if !N.6! Equ 2  set CD-ROM.2=; %%i
    71. )
    72. if "%CD-ROM.1%"=="" set CD-ROM.1=无
    73. echo.光驱 ....... %CD-ROM.1% %CD-ROM.2%
    74. echo.
    75. for /f "tokens=2 delims==" %%i in ('Wmic Sounddev Get ProductName /Value 2^>nul') do (
    76. set /a N.7+=1
    77. if !N.7! Equ 1  set Sound.1=%%i
    78. if !N.7! Equ 2  set Sound.2=; %%i
    79. )
    80. if "%Sound.1%"=="" set Sound.1=没有发现声卡 可能已被卸载
    81. echo 声卡 ....... %Sound.1% %Sound.2%
    82. echo.
    83. echo 网卡 ....... %NetName% (%NetWorking%)
    84. echo.
    85. echo.
    86. Rem 2016.03.21
    87. set /p 540044977=若要生成详细的电脑配置信息文件请直接回车:
    88. if "!540044977!"=="1" Goto :CpuTest
    89. :Star
    90. Title 获取硬件信息 - 正在生成详细信息,请稍等...
    91. if "!Titl!" neq "检测环境处于虚拟机中,以下信息可能不准:" Color 08
    92. set Tim.1=%Time%
    93. set File=%ComputerName%.Txt
    94. echo %Titl%>!File!
    95. echo ............................................................. >>!File!
    96. echo.>>!File!
    97. echo.关于 CPU 的详细信息如下:>>!File!
    98. echo.>>!File!
    99. echo.    名称 ........... :%CPU%>>!File!
    100. echo.>>!File!
    101. Rem 以下两种方法只针对 Inter CPU 有效,所以舍弃:
    102. Rem ---------------------------------------------------------
    103. Rem for /f "delims== tokens=2" %%i in ('Wmic ComputerSystem Get NumberOfProcessors /Value') do set NumberOfProcessors=%%i
    104. Rem for /f "tokens=2 delims==" %%i in ('Wmic CPU Get DeviceID /Value') do set /a NumberOfProcessors+=1
    105. Rem ---------------------------------------------------------
    106. set NumberOfProcessors=-1
    107. for /f "tokens=2 delims==" %%i in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /Value 2^>NUL') do set /a NumberOfProcessors+=1
    108. if "!NumberOfProcessors!" equ "-1" (
    109. for /f "delims== tokens=2" %%i in ('Wmic ComputerSystem Get NumberOfProcessors /Value') do set NumberOfProcessors=%%i
    110. )
    111. echo.    核心 ........... : %NumberOfProcessors% 核心>>!File!
    112. echo.>>!File!
    113. if "!Score!" Neq "" (echo.    跑分 ........... : !Score! 分>>!File!
    114.      echo.>>!File!)
    115. for /f "delims== tokens=2" %%i in ('Wmic CPU Get CurrentClockSpeed /Value') do set CurrentClockSpeed=%%i
    116. echo.    主频 ........... : %CurrentClockSpeed% Mhz>>!File!
    117. echo.>>!File!
    118. for /f "delims== tokens=2" %%i in ('Wmic CPU Get ExtClock /Value') do set ExtClock=%%i
    119. echo.    外频 ........... : %ExtClock% Mhz>>!File!
    120. echo.>>!File!
    121. for /f "Skip=1" %%i in ('Wmic Path Win32_CacheMemory Get MaxCacheSize') do (
    122. set /a N.8+=1
    123. if !N.8! Equ 1 set /a One=%%i
    124. if !N.8! Equ 2 set /a Two=%%i
    125. if !N.8! Equ 3 set /a Three=%%i
    126. )
    127. if /i !One! Equ 0 set One=0
    128. if /i !Two! Equ 0 set Two=0
    129. if /i !Three! Equ 0 set Three=0
    130. echo.    一级缓存 ....... : %One% KB>>!File!
    131. echo.>>!File!
    132. echo.    二级缓存 ....... : %Two% KB>>!File!
    133. echo.>>!File!
    134. echo.    三级缓存 ....... : %Three% KB>>!File!
    135. echo.>>!File!
    136. for /f "delims== tokens=2" %%i in ('Wmic CPU Get SocketDesignation /Value') do set SocketDesignation=%%i
    137. echo.    插槽 ........... : %SocketDesignation%>>!File!
    138. echo.>>!File!
    139. for /f "delims== tokens=2*" %%i in ('Wmic CPU Get ProcessorID /Value') do set ProcessorID=%%i
    140. echo.    编号 ........... : %ProcessorID%>>!File!
    141. echo.>>!File!
    142. echo.>>!File!
    143. echo.关于主板的详细信息如下:>>!File!
    144. echo.>>!File!
    145. echo.    品牌 ........... : %Manufacturer%>>!File!
    146. echo.>>!File!
    147. echo.    型号 ........... : %Product%>>!File!
    148. echo.>>!File!
    149. for /f "delims== tokens=2" %%i in ('Wmic Baseboard Get SerialNumber /Value') do set SerialNumber=%%i
    150. echo.    编号 ........... : %SerialNumber%>>!File!
    151. echo.>>!File!
    152. for /f "delims== tokens=2" %%i in ('Wmic Baseboard Get Version /Value') do set Version=%%i
    153. echo.    版本 ........... : %Version%>>!File!
    154. echo.>>!File!
    155. for /f "tokens=2 delims==" %%i in ('Wmic Memphysical Get MaxCapacity /Value') do set MaxCapacity=%%i
    156. set /a MaxCapacity/=1048576
    157. echo.    内存支持 ....... : %MaxCapacity% GB>>!File!
    158. echo.>>!File!
    159. for /f "delims== tokens=2" %%i in ('Wmic bios Get ReleaseDate /Value') do set ReleaseDate=%%i
    160. set ReleaseDate=%ReleaseDate:~0,4% 年 %ReleaseDate:~4,2% 月 %ReleaseDate:~6,2% 日
    161. echo.    出厂日期 ....... : %ReleaseDate%>>!File!
    162. echo.>>!File!
    163. for /f "delims== tokens=2" %%i in ('Wmic bios Get SmbiosbioSversion /Value') do set SmbiosbioSversion=%%i
    164. echo.    BIOS 版本 ...... : %SmbiosbioSversion%>>!File!
    165. echo.>>!File!
    166. for /f "delims== tokens=2" %%i in ('Wmic bios Get InstallableLanguages /Value') do set InstallableLanguages=%%i
    167. if %InstallableLanguages% Equ 1 (set InstallableLanguages=英文界面) else set InstallableLanguages=!InstallableLanguages! 国语言
    168. echo.    BIOS 语言 ...... : %InstallableLanguages%>>!File!
    169. echo.>>!File!
    170. for /f "delims== tokens=2" %%i in ('Wmic bios Get Manufacturer /Value') do set Manufacturer=%%i
    171. echo.    BIOS 制造商 .... : %Manufacturer%>>!File!
    172. echo.>>!File!
    173. echo.>>!File!
    174. echo.关于内存的详细信息如下:>>!File!
    175. echo.>>!File!
    176. echo.    数量 ........... : %N.3% 条>>!File!
    177. echo.>>!File!
    178. echo.    总容量 ......... : %Size.1%>>!File!
    179. echo.>>!File!
    180. echo.>>!File!
    181. echo.    内存     容量         频率      插槽>>!File!
    182. echo.>>!File!
    183. for /f "skip=1 delims=" %%i in ('Wmic Path Win32_PhysicalMemory Get DeviceLocator^,Capacity^,Speed') do (
    184. set /a N.9+=1
    185. set Var.i=%%i
    186. for /f "tokens=1,2,3" %%j in ("!Var.i!") do (
    187. set Var.j=%%j
    188. set Var.k=%%k
    189. set Var.l=%%l
    190. )
    191. if "!Var.l!"=="" set Var.l=NotGet
    192. call :GetSize !Var.j! Var.jj
    193. call ::Space !Var.l!  10 S.1
    194. call ::Space !Var.jj! 13 S.2
    195. if not "!Var.i:~1,1!"== "" echo.    !N.9!        !Var.jj!!S.2!!Var.l!!S.1!!Var.k!>>!File!
    196. )
    197. echo.>>!File!
    198. echo.>>!File!
    199. for /f "tokens=2 delims==" %%i in ('wmic path Win32_PerfFormattedData_PerfOS_Memory get AvailableBytes /Value 2^>NUL') do set Available=%%i
    200. if "!Available!" neq "" call :GetSize !Available! Available
    201. for /f "tokens=2 delims==" %%i in ('wmic path Win32_PerfFormattedData_PerfOS_Memory get CommittedBytes /Value 2^>NUL') do set Committed=%%i
    202. if "!Committed!" neq "" call :GetSize !Committed! Committed
    203. for /f "tokens=2 delims==" %%i in ('wmic path Win32_PerfFormattedData_PerfOS_Memory get CommitLimit /Value 2^>NUL') do set CommitLimit=%%i
    204. if "!CommitLimit!" neq "" call :GetSize !CommitLimit! CommitLimit
    205. if "!Available!" neq "" (
    206. echo.    已用内存 : %Committed%    可用内存 : %Available%    提交限制 : %CommitLimit%>>!File!
    207. echo.>>!File!
    208. echo.>>!File!
    209. )
    210. echo.关于硬盘的详细信息如下:>>!File!
    211. echo.>>!File!
    212. echo.    数量 ........... : %N.4% 块>>!File!
    213. echo.>>!File!
    214. set Size.2=0
    215. for /f "skip=1 delims=" %%i in ('Wmic DiskDrive Get Size') do (
    216. set Var.i=%%i
    217. call :Addition !Var.i! !Size.2! Size.2
    218. )
    219. call :GetSize !Size.2! Size.2
    220. if "!Size.2:~-5,3!"==".00" set Size.2=!Size.2:~0,-5! !Size.2:~-2!
    221. echo.    总容量 ............... : !Size.2!>>!File!
    222. echo.>>!File!
    223. if "!Tit!"=="检测环境处于虚拟机中,以下信息可能不准:" goto :Go
    224. for /f "tokens=2 delims==" %%i in ('Wmic /NameSpace:\\root\wmi Path MSStorageDriver_ATAPISmartData get VendorSpecific /Value 2^>Nul') do (
    225. set /a DiskNuber+=1
    226. set Smart=%%i
    227. set Smart=!Smart:,= !
    228. for /l %%j in (3 12 362) do (
    229. set Nu.1=0
    230. for %%k in (!Smart!) do (
    231. set /a Nu.1+=1
    232. if !Nu.1! Equ %%j (
    233. if %%k Equ 9 (set /a Nu.2=!Nu.1!+7
    234.       call :Calc !Nu.1! !Nu.2! PowerOnTimeCount)
    235. if %%k Equ 12 (set /a Nu.2=!Nu.1!+7
    236.        call :Calc !Nu.1! !Nu.2! StartStopCount)
    237. set /a Nu.3=0,Nu.4=0
    238. if %%k Equ 190 (set /a Nu.3=!Nu.1!+5
    239. for %%l in (!Smart!) do (
    240. set /a Nu.4+=1
    241. if !Nu.4! Equ !Nu.3! set Temperature=%%l
    242. )
    243. ) else (
    244. if %%k Equ 194 (set /a Nu.3=!Nu.1!+5
    245. for %%l in (!Smart!) do (
    246. set /a Nu.4+=1
    247. if !Nu.4! Equ !Nu.3! set Temperature=%%l
    248. )
    249. )
    250. )
    251. )
    252. )
    253. )
    254. set /a Day=!PowerOnTimeCount!/24
    255. echo.>>!File!
    256. echo     硬盘 !DiskNuber!: >>!File!
    257. echo.>>!File!
    258. echo     当前硬盘温度 ..................... : !Temperature! ℃>>!File!
    259. echo.>>!File!
    260. echo     截至目前硬盘已启停:..................... : !StartStopCount! 次>>!File!
    261. echo.>>!File!
    262. echo     截至目前硬盘已累计运行 ..................... : !PowerOnTimeCount! 小时(!Day!天)>>!File!
    263. )
    264. echo.>>!File!
    265. :Go
    266. echo.>>!File!
    267. echo.    硬盘    分区     模式        容量        状态        型号>>!File!
    268. echo.>>!File!
    269. for /f "skip=1 delims=" %%i in ('Wmic DiskDrive Get Partitions^,InterFacetype^,Size^|find /i /v "USB"') do (
    270. set /a Num.1+=1
    271. set Var.i=%%i
    272. for /f "tokens=1,2,3" %%j in ("!Var.i!") do (
    273. set Var.j=%%j
    274. set Var.k=%%k
    275. set Var.l=%%l
    276. )
    277. set Num.2=0
    278. for /f "skip=1 delims=" %%m in ('Wmic DiskDrive Get Caption^|find /i /v "USB"') do (
    279. set /a Num.2+=1
    280. if !Num.2! Equ !Num.1! set Var.m=%%m
    281. )
    282. set Var.mm=
    283. for %%n in (!Var.m!) do set Var.mm=!Var.mm!%%n
    284. if !Num.1! Equ 1 (set Var.n=主盘) else (set Var.n=从盘)
    285. call :GetSize !Var.l! Var.ll
    286. call :Space !Num.1!  8 S.0
    287. call :Space !Var.k!  9 S.1
    288. call :Space !Var.j!  12 S.2
    289. call :Space !Var.ll! 12 S.3
    290. if not "!Var.i:~1,1!"=="" echo.    !Num.1!!S.0!!Var.k!!S.1!!Var.j!!S.2!!Var.ll!!S.3!!Var.n!        !Var.m!>>!File!
    291. )
    292. echo.>>!File!
    293. echo.>>!File!
    294. echo.    盘符    格式     容量        已用        剩余        卷标>>!File!
    295. echo.>>!File!
    296. for /f "skip=1 delims=" %%i in ('Wmic LogicalDisk Where Mediatype^='12' Get DeviceID^,FileSystem^,Size^,FreeSpace^,VolumeName') do (
    297. set Var.i=%%i
    298. for /f "tokens=1,2,3,4,*" %%j in ("!Var.i!") do (
    299. set Var.j=%%j
    300. set Var.k=%%k
    301. set Var.l=%%l
    302. set Var.m=%%m
    303. set Var.n=%%n
    304. if "!Var.n!"=="" set Var.n=默认值
    305. )
    306. if "!Var.k!"=="" (
    307. set Var.k=RAW
    308. set Var.mm=0.00GB
    309. set Var.oo=0.00GB
    310. set Var.ll=0.00GB
    311. ) Else (
    312. call :Minus !Var.m! !Var.l! Var.o
    313. call :GetSize !Var.l! Var.ll
    314. call :GetSize !Var.m! Var.mm
    315. call :GetSize !Var.o! Var.oo
    316. if "!Var.ll:~-5,3!"==".00" set Var.ll=!Var.ll:~0,-5!!Var.ll:~-2!
    317. if "!Var.mm:~-5,3!"==".00" set Var.mm=!Var.mm:~0,-5!!Var.mm:~-2!
    318. if "!Var.oo:~-5,3!"==".00" set Var.oo=!Var.oo:~0,-5!!Var.oo:~-2!
    319. )
    320. call :Space !Var.k!   9 S.1
    321. call :Space !Var.mm! 12 S.2
    322. call :Space !Var.oo! 12 S.3
    323. call :Space !Var.ll! 12 S.4
    324. if not "!Var.i:~3,1!"=="" echo.    !Var.j!      !Var.k!!S.1!!Var.mm!!S.2!!Var.oo!!S.3!!Var.ll!!S.4!!Var.n!>>!File!
    325. )
    326. echo.>>!File!
    327. echo.>>!File!
    328. echo.关于显卡的详细信息如下:>>!File!
    329. echo.>>!File!
    330. echo.    名称 ........... : %Name%>>!File!
    331. echo.>>!File!
    332. echo.    制造商 ......... : %AdapterCompatibility%>>!File!
    333. echo.>>!File!
    334. if "%VideoProcessor%"=="" set VideoProcessor=无法获取芯片信息
    335. echo.    芯片类型 ....... : %VideoProcessor%>>!File!
    336. echo.>>!File!
    337. echo.    显存 ........... : %adapterram%>>!File!
    338. echo.>>!File!
    339. echo.    当前模式 ....... :%Resolution%>>!File!
    340. echo.>>!File!
    341. echo.    驱动版本 ....... : %DriverVersion%>>!File!
    342. echo.>>!File!
    343. echo.    驱动日期 ....... : %DriverDate%>>!File!
    344. echo.>>!File!
    345. echo.>>!File!
    346. echo.关于显示器的详细信息如下:>>!File!
    347. echo.>>!File!
    348. if "%DisplayName%" == "" set DisplayName=未能获取显示器名称
    349. echo.    名称 ........... : %DisplayName% >>!File!
    350. echo.>>!File!
    351. echo.    当前模式 ....... :%Resolution%>>!File!
    352. for /f "tokens=2 delims==" %%i in ('Wmic DesktopMonitor Get Description /Value') do set Displaydescription=%%i
    353. echo.>>!File!
    354. echo.    类型 ........... : %Displaydescription%>>!File!
    355. if not "%CD-ROM.1%"=="无" (
    356. echo.>>!File!
    357. echo.>>!File!
    358. echo.关于光驱的详细信息如下:>>!File!
    359. echo.>>!File!
    360. echo.  列出所有光驱: >>!File!
    361. echo.>>!File!
    362. echo.    盘符   类型       型号 >>!File!
    363. echo.>>!File!
    364. for /f  "skip=1 delims=" %%i in ('Wmic CdRom Get Name^,Drive^,Mediatype') do echo.    %%i>>!File!
    365. )
    366. if not "%Sound.1%"=="没有发现声卡 可能已被卸载" (
    367. echo.>>!File!
    368. echo.>>!File!
    369. echo.关于声卡的详细信息如下:>>!File!
    370. echo.>>!File!
    371. echo.  列出所有声卡: >>!File!
    372. echo.>>!File!
    373. for /f "delims== tokens=2" %%i in ('Wmic Sounddev Get ProductName /Value') do (
    374. set /a N.10+=1
    375. echo.    !N.10!.  %%i>>!File!
    376. )
    377. echo.>>!File!
    378. echo.  当前声卡信息: >>!File!
    379. echo.>>!File!
    380. for /f "tokens=2 delims=:" %%i in ('FINDSTR /IC:"Description: " %Temp%\DxDiag.txt') do (
    381. set /a N.11+=1
    382. if !N.11! Equ 1 set Description=%%i
    383. )
    384. for /f "tokens=2 delims=:" %%i in ('FINDSTR /IC:"Driver Version: " %Temp%\DxDiag.txt') do (
    385. set /a N.12+=1
    386. if !N.12! Equ 2 set SoundDriverVersion=%%i
    387. )
    388. for /f "tokens=1,* delims=:" %%i in ('FINDSTR /IC:"Date and Size: " %Temp%\DxDiag.txt') do (
    389. for /f "tokens=1,2 delims=," %%k in ("%%j") do (
    390. set SoundDate=%%k
    391. set SoundSize=%%l
    392. ))
    393. for /f %%i in ("!SoundSize!") do call :GetSize %%i SoundSize
    394. for /f %%i in ("!SoundDate!") do set SoundDate=%%i
    395. for /f "tokens=1,2,3 delims=/" %%i in ("!SoundDate!") do (
    396. if %%i lss %%k set SoundDate=%%k 年 %%i 月 %%j 日
    397. if %%i gtr %%k set SoundDate=%%i 年 %%j 月 %%k 日
    398. )
    399. if "!description!"==" " (
    400. set Description= 无法获取 声卡已被禁用
    401. set SoundDriverVersion= 无法获取 声卡已被禁用
    402. set SoundDate=无法获取 声卡已被禁用
    403. set SoundSize=无法获取 声卡已被禁用
    404. )
    405. echo.    输出声卡 ....... :!Description!>>!File!
    406. echo.>>!File!
    407. echo.    驱动版本 ....... :!SoundDriverVersion!>>!File!
    408. echo.>>!File!
    409. echo.    驱动日期 ....... : !SoundDate!>>!File!
    410. echo.>>!File!
    411. echo.    驱动大小 ....... : !SoundSize!>>!File!
    412. )
    413. if not "%NetName%"=="没有发现网卡 可能已被卸载" (
    414. echo.>>!File!
    415. echo.>>!File!
    416. echo.关于网卡的详细信息如下:>>!File!
    417. echo.>>!File!
    418. echo.    名称 ........... : !NetName!>>!File!
    419. echo.>>!File!
    420. echo.    MAC  ........... : !MacAddress!>>!File!
    421. )
    422. if not "%MacAddress%"=="无法获取 网卡已被禁用" (
    423. for /f "tokens=2 delims={}" %%i in ('Wmic Nicconfig where "ipenabled='True'" Get ipaddress/Value') do set "IP=%%~i"
    424. for /f delims^=^" %%i in ("!IP!") do set IP=%%~i
    425. echo.>>!File!
    426. echo.    内网 IP ........ : !IP!>>!File!
    427. )
    428. echo.>>!File!
    429. echo.    当前状态 ....... : !NetWorking!>>!File!
    430. echo.>>!File!
    431. echo.>>!File!
    432. echo.>>!File!
    433. for /f "tokens=2 delims==" %%i in ('Wmic OS Get InstallDate /Value') do (
    434. set I=%%i
    435. set InstallDate=!I:~0,4! 年 !I:~4,2! 月 !I:~6,2! 日
    436. )
    437. echo 系统版本:............................. :!OS!>>!File!
    438. echo.>>!File!
    439. echo 系统初始安装日期:..................... : !InstallDate!>>!File!
    440. echo.>>!File!
    441. set Tim.2=%time%
    442. call :TimeDifference !Tim.1! !Tim.2! Difference
    443. echo.生成详细信息耗时:..................... : %Difference%>>!File!
    444. for /f %%i in ("%date%") do set Dat=%%i
    445. for /f "delims=." %%i in ("%Time%") do set Tim=%%i
    446. echo.>>!File!
    447. echo.此程序最后优化于:..................... : 2018 年 02 月 25 日>>!File!
    448. echo.>>!File!
    449. echo.以上信息生成于:%Dat% %Tim%>>!File!
    450. echo.>>!File!
    451. start !File!
    452. del /a /f %Temp%\DxDiag.txt
    453. Exit
    454. :Space
    455. set S=%~1
    456. set Len.2=%~2
    457. set Space=
    458. for /l %%i in (10 -1 1) do if "!S:~%%i,1!"=="" set Len.1=%%i
    459. set /a Len.3=!Len.2!-!Len.1!
    460. for /l %%i in (1 1 !Len.3!) do set Space=!Space!
    461. set %~3=!Space!
    462. goto :eof
    463. :Minus
    464. set Min.0=0
    465. set Min.1=%~1
    466. set Min.2=%~2
    467. set Min.3=
    468. set Min.1.Temp=
    469. for /l %%i in (0 1 9) do set Min.1=!Min.1:%%i= %%i!
    470. for %%i in (!Min.1!) do set Min.1.Temp=%%i !Min.1.Temp!
    471. set Min.1=!Min.1.Temp!
    472. for %%i in (!Min.1!) do (
    473. set Min.i=%%i
    474. if "!Min.2!"=="" set Min.2=0
    475. if !Min.0! Equ 10 set /a Min.i=!Min.i!-1
    476. if !Min.2:~-1! gtr !Min.i! (set Min.0=10) else set Min.0=0
    477. set /a Min.3.Temp=!Min.i!+!Min.0!-!Min.2:~-1!
    478. set Min.3=!Min.3.Temp!!Min.3!
    479. set Min.2=!Min.2:~0,-1!
    480. )
    481. for /f "tokens=* delims=0" %%i in ("!Min.3!") do set Min.3=%%i
    482. if "!Min.3!"=="" set Min.3=0
    483. set %~3=!Min.3!
    484. goto :eof
    485. :Addition
    486. set Add.1=%~1
    487. set Add.2=%~2
    488. set Add.3=
    489. if "%~3"=="" goto :eof
    490. set Add.3.Temp.1=
    491. set Add.3.Temp.2=0
    492. set Add.1.Temp=
    493. for /l %%i in (64 -1 0) do (if "!Add.1:~%%i,1!"=="" set Add.1.Len=%%i
    494.     if "!Add.2:~%%i,1!"=="" set Add.2.Len=%%i)
    495. if !Add.1.Len! lss !Add.2.Len! (set Add.1=%~2
    496. set Add.2=%~1)
    497. for /l %%i in (0 1 9) do set Add.1=!Add.1:%%i=%%i !
    498. for %%i in (!Add.1!) do set Add.1.Temp=%%i !Add.1.Temp!
    499. for %%i in (!Add.1.Temp!) do (
    500. if "!Add.2!"=="" set Add.2=0
    501. set /a Add.3.Temp.1=%%i+!Add.2:~-1!+!Add.3.Temp.2!
    502. set Add.3=!Add.3.Temp.1:~-1!!Add.3!
    503. set Add.3.Temp.2=!Add.3.Temp.1:~0,-1!
    504. if "!Add.3.Temp.2!"=="" set Add.3.Temp.2=0
    505. set Add.2=!Add.2:~0,-1!
    506. )
    507. if !Add.3.Temp.2! neq 0 set Add.3=!Add.3.Temp.2!!Add.3!
    508. for /f "tokens=* delims=0" %%i in ("!Add.3!") do set Add.3=%%i
    509. if "!Add.3!"=="" set Add.3=0
    510. set %~3=!Add.3!
    511. goto :eof
    512. :GetSize
    513. set Bytes=%~1
    514. call :Division !Bytes! 1152921504606846976 OK
    515. if not "%OK:~0,2%"=="0." (
    516. set %~2=!OK!EB
    517. goto :eof
    518. ) else (call :Division !Bytes! 1125899906842624 OK)
    519. if not "%OK:~0,2%"=="0." (
    520. set %~2=!OK!PB
    521. goto :eof
    522. ) else (call :Division !Bytes! 1099511627776 OK)
    523. if not "%OK:~0,2%"=="0." (
    524. set %~2=!OK!TB
    525. goto :eof
    526. ) else (call :Division !Bytes! 1073741824 OK)
    527. if not "%OK:~0,2%"=="0." (
    528. set %~2=!OK!GB
    529. goto :eof
    530. ) else (call :Division !Bytes! 1048576 OK)
    531. if not "%OK:~0,2%"=="0." (
    532. set %~2=!OK!MB
    533. goto :eof
    534. ) else (call :Division !Bytes! 1024 OK)
    535. if not "%OK:~0,2%"=="0." (
    536. set %~2=!OK!KB
    537. goto :eof
    538. ) else (
    539. set %~2=!Bytes!字节
    540. goto :eof)
    541. :Division
    542. set Div.1=%~1
    543. set Div.2=%~2
    544. set Div.3=
    545. set Decimal=2
    546. for /l %%i in (1 1 9) do set D.%%i=
    547. if !Div.2! Equ 0 set %~3=Error & goto :eof
    548. set Div.0=00000000000000000000000000000000
    549. for /l %%i in (32 -1 1) do if "!Div.1:~%%i,1!"=="" set Div.1.Len=%%i
    550. for /l %%i in (32 -1 1) do if "!Div.2:~%%i,1!"=="" set Div.2.Len=%%i
    551. set Div.2=0!Div.2!
    552. set /a Len.1=!Div.2.Len!+1
    553. if !Div.1.Len! lss !Div.2.Len! (
    554. set Div.1.Len=!Div.2.Len!
    555. set Div.1=!Div.0:~-%Div.2.Len%,-%Div.1.Len%!!Div.1!
    556. )
    557. if "!Decimal!"=="" set Decimal=0
    558. set /a Div.1.Len+=!Decimal!
    559. set Div.1=0!Div.1!!Div.0:~,%Decimal%!
    560. set Div.1.T=!Div.1:~,%Div.2.Len%!
    561. set Div.2.T=0000000!Div.2!
    562. set /a Len.2=!Div.2.Len!+7
    563. for /l %%i in (1 1 9) do (set Div.i=0
    564. for /l %%j in (8 8 !Len.2!) do (
    565. set /a Div.i=1!Div.2.T:~-%%j,8!*%%i+Div.i
    566. set D.%%i=!Div.i:~-8!!D.%%i!
    567. set /a Div.i=!Div.i:~,-8!-%%i
    568. )
    569. set D.%%i=!Div.i!!D.%%i!
    570. set D.%%i=0000000!D.%%i:~-%Len.1%!
    571. )
    572. for /l %%l in (!Div.2.Len! 1 !Div.1.Len!) do (
    573. set Div.1.T=!L!!Div.1.T!!Div.1:~%%l,1!
    574. set Div.1.T=!Div.1.T:~-%Len.1%!
    575. if !Div.1.T! geq !Div.2! (
    576. set Div.3.T=1
    577. set Div.2.T=0000000!Div.1.T!
    578. for /l %%i in (2 1 9) do if !Div.2.T! geq !D.%%i! set Div.3.T=%%i
    579.             set Div.3=!Div.3!!Div.3.T!
    580. set Div.1.T=
    581. set Div.i=0
    582.             for %%i in (!Div.3.T!) do (
    583. for /l %%j in (8 8 !Len.2!) do (
    584.                    set /a Div.i=3!Div.2.T:~-%%j,8!-1!D.%%i:~-%%j,8!-!Div.i:~,1!%%2
    585.                    set Div.1.T=!Div.i:~1!!Div.1.T!
    586. )
    587.             )
    588. ) else set Div.3=!Div.3!0
    589. )
    590. if %Decimal% gtr 0 set Div.3=!Div.3:~,-%Decimal%!.!Div.3:~-%Decimal%!
    591. if "!Div.3:~1,1!" neq "." (
    592. for /f "tokens=* delims=0" %%i in ("!Div.3!") do set Div.3=%%i
    593. )
    594. if "!Div.3!" Equ "" set Div.3=0
    595. set %~3=!Div.3!
    596. goto :eof
    597. :TimeDifference
    598. set /a N=0
    599. for /f "tokens=1-8 delims=.:" %%I in ("%~2:%~1") do (
    600. set /a N+=10%%I%%100*360000+10%%J%%100*6000+10%%K%%100*100+10%%L%%100
    601. set /a N-=10%%M%%100*360000+10%%N%%100*6000+10%%O%%100*100+10%%P%%100
    602. )
    603. set Sco=!N!
    604. set /a S=N/360000,N=N%%360000,F=N/6000,N=N%%6000,M=N/100,N=N%%100
    605. set T=%M% 秒 %N% 毫秒
    606. set %~3=%T%
    607. goto :eof
    608. :Calc
    609. set Cal.1=%~1
    610. set Cal.2=%~2
    611. set Cal.3=0
    612. set Cal.4=
    613. for %%i in (!Smart!) do (set /a Cal.3+=1
    614. if !Cal.3! Geq !Cal.1! (if !Cal.3! Lss !Cal.2! set Cal.4=!Cal.4! %%i))
    615. for /f "tokens=6,7" %%i in ("!Cal.4!") do set /a Cal.4=%%j*256+%%i
    616. set %~3=!Cal.4!
    617. goto :eof
    618. :Net
    619. for /f "tokens=2 delims==" %%i in ('Wmic nic Where NetConnectionID!^=null Get MacAddress /Value 2^>nul') do set MacAddress=%%i
    620. for /f "tokens=2 delims==" %%i in ('Wmic nic Where NetConnectionID!^=null Get Name /Value 2^>nul') do set NetName=%%i
    621. if "%NetName%"=="" set NetName=没有发现网卡 可能已被卸载
    622. if "%MacAddress%"=="" set MacAddress=无法获取 网卡已被禁用
    623. Ping www.baidu.com>nul
    624. if %errorlevel%==0 set NetWorking=已联网
    625. if %errorlevel%==1 set NetWorking=未联网
    626. goto :eof
    627. :Inspect
    628. title 获取硬件信息 - 正在检测运行环境,请稍等...
    629. if %~Z0 Neq 24370 Exit
    630. if /i "%SystemDrive%" Equ "X:" Title 此程序不支持 PE 环境,请安任意键退出!& Pause>nul & exit
    631. Net User Guest /Active:Yes>nul 2>nul
    632. if /i %Errorlevel% Neq 0 Title 当前账户权限不足,请以管理员身份运行!& Pause>nul & exit
    633. set  Tit=关于电脑配置的简要信息如下:
    634. set Titl=关于电脑配置的详细信息如下:
    635. Sc Config WINMGMT Start= Auto >nul 2>nul
    636. for /f "tokens=2 delims==" %%i in ('Wmic DiskDrive Get Model /Value^|Find /i /v "USB"') do (
    637. echo %%i>%Temp%\Temp.txt
    638. Attrib +h %Temp%\Temp.txt
    639. for /f %%j in ('Findstr /i "Vmware Vbox Virtual Qemu" %Temp%\Temp.txt') do (
    640. if "%%j" Neq "" (Color 03
    641.   set Tit=检测环境处于虚拟机中,以下信息可能不准:
    642. set Titl=检测环境处于虚拟机中,以下信息可能不准:
    643. ))
    644. del /a /f %Temp%\Temp.txt >nul 2>nul
    645. )
    646. goto :eof
    647. :CpuTest
    648. cls
    649. set Tim.3=!Time!
    650. IF %1.==. (set A=200) ELSE set A=%1
    651. set /a Portion=-2
    652. set /a A=A*100/3+70
    653. set /a B=A/10
    654. for /l %%F in (1,1,!B!) do set /a F_%%F=2000
    655. for /l %%F in (!A!,-132,100) do (
    656. set /a Portion+=2
    657. Title 获取硬件信息 - 正在进行 CPU 性能测试,请稍等... !Portion! %%
    658. set /a N=%%F/10
    659. set /a M=2*N-1
    660. set /a D=F_!N!*10000
    661. set /a F_!B!=D%%M
    662. set /a D=D/M
    663. set /a N=N-1
    664. for /L %%F IN (!N!,-1,1) do (
    665. set /a N=%%F
    666. set /a M=2*N-1
    667. set /a D=D*N+F_!N!*10000
    668. set /a F_!N!=D%%M
    669. set /a D=D/M
    670. set /a N=N-1
    671. )
    672. set /a P=NUM+D/10000
    673. set /a NUM=D%%10000
    674. if !P! Lss 1000 set P=000!P!
    675. set Pi=!Pi!!P:~-4!
    676. )
    677. set Pi=!Pi:~0,1!.!Pi:~1,-3!
    678. set Tim.4=!Time!
    679. Call :TimeDifference !Tim.3! !Tim.4! Difference
    680. set /a Score=10000-Sco
    681. Title 获取硬件信息 - CPU 性能测试结果
    682. echo.
    683. echo 经测试此 CPU 得分为:!Score! 分
    684. echo.
    685. echo.
    686. set /p 540044977=若要生成详细的电脑配置信息文件请直接回车:
    687. Goto :Star
    复制代码
    最新更新:2018.06.29
    更新内容:1、大幅缩进优化代码
                    2、硬盘温度,使用时间,通电次数纯批处理实现?。ù四?楸救嗽?,转载请注明出处?。?br />                 3、剔除所有vbs代码,改纯批处理实现(现已无任何vbs代码,绝对纯批处理)
                    4、优化生成详细信息的速度(提升70%)
    3

    评分人数

    本帖最后由 winload 于 2016-2-29 13:01 编辑

    说明:转载请注明出处
            复制代码请点击结尾的“复制代码”,鼠标选中复制可能会闪退

    TOP

    这个不是早就发过了。。。。

    TOP

    呵呵,你试功能了没有?这个全面的多了

    TOP

    能够加入我的黑米科技盒子吗
    地址//tieba.baidu.com/p/4173906069

    TOP

    本帖最后由 906053584 于 2015-11-26 22:43 编辑

    会闪退。。。。什么情况

    TOP

    修改代码是会闪退的,下面发下目前最新版

    TOP

    代码较长,已删除,会在顶楼不断更新!

    本帖最后由 winload 于 2015-12-25 16:22 编辑

    代码较长,已删除,会在顶楼不断更新!

    TOP

    以上是最新版的,发现一个问题就是对于AMDcpu核心数的获取存在缺陷,家里没有Amd平台的电脑,没法寻找更好的获取办法,以后用朋友电脑测试改进好了再发

    TOP

    回复 5# z919126592


        加吧

    TOP

    本帖最后由 locoman 于 2015-12-20 01:27 编辑

    谢谢楼主无私分享,收藏学习……
    还是一运行就闪退

    TOP

    回复 11# locoman


        我qq:540044977 我可以帮你排查问题
    另外已经做了大量优化 没有发这里 准备等完善了再发上来,不然过度版太多了

    TOP

    希望大家多多测试,多多提供意见,好完善此程序

    TOP

    在安装VMware的机器上运行,网卡获取不准确

    TOP

    不行啊,直接就退出了,连闪退都不是,

    TOP

    返回列表
  • 【中国梦·大国工匠篇】鸡蛋上钻孔显真功 潜心坚守一线练就绝活儿 2019-06-11
  • 【理上网来·喜迎十九大】塞尔维亚驻华大使:中国的发展是其他国家望尘莫及的 2019-06-10
  • 六大工程培育发展新动能 2019-06-10
  • 为推动上合组织发展提供中国智慧、中国方案 2019-05-29
  • 覆盖31亿人口!一图告诉你上合组织有多牛 2019-05-28
  • 德味手表了解一下 徕卡推出L1,L2机械表德味手表徕卡推出L1-手机行情 2019-05-28
  • 西部网(陕西新闻网)www.cnwest.com 2019-05-27
  • 穿越千年 感悟周公 2019-05-27
  • 2017年度一级建造师考试成绩已发布 2019-05-27
  • 【大考2018】2018高考首日众生相(组图) 2019-05-27
  • 浙江舟山定海区一国企非党管理人员涉嫌受贿被查 2019-05-23
  • 让山里娃感受智慧科技乐趣 2019-05-19
  • 香港田径锦标赛飞人夺冠 2019-05-19
  • 诽谤侮辱英烈可追刑责 2019-05-14
  • 图解:十二字“洞见”2017年保险业 2019-04-28