Advertisement
WesleyJB

Hard Drive & RAM Information Display (WIP)

Jul 25th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 6.73 KB | None | 0 0
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4.  
  5. :: This will be added to http://pastebin.com/tvB0t4MW soon.
  6.  
  7. :: This is still being worked on. The base of it is done.
  8. :: Script Version: 1.0
  9. :: by Wesley J. B.
  10.  
  11.  
  12.  
  13. :: I should also mention that this is compatible with any amount of HD's or RAM Sticks. You could have 64 hard drives and it would look through all of them. I only have 2 to test with,
  14. :: but when messing with the information files (disabling the script from rewriting them of course), it will display all of them with their proper info in system order.
  15. :: Example: My main drive is on line 6 when it should be on line 3. Based on the DeviceID, I can put them in the correct order.
  16.  
  17.  
  18. :: Warning: RAM always displays the wrong amount. Don't trust the amount it gives you at this current time.
  19. :: I have 12 GB and when converting the bytes through online sources, it returns with less than 1 GB.
  20.  
  21.  
  22. rem type testing.temp > hdsize.temp
  23. mkdir "%CD%\testing"
  24. set maindir="%CD%"
  25. set directory="%CD%\testing"
  26. CD /D "%directory%"
  27.  
  28.  
  29. ::Start HD Section
  30. echo Start HD Section
  31. echo.
  32. echo.
  33. wmic diskdrive list full /format:list >testing.temp
  34.  
  35. wmic diskdrive get model /format:list >hdmodel.temp
  36.  
  37. wmic diskdrive get size /format:list >hdsize.temp
  38.  
  39. wmic diskdrive get deviceid /format:list >hddevid.temp
  40.  
  41.  
  42. setlocal EnableDelayedExpansion
  43. set "cmd=findstr /R /N "^^" hdmodel.temp | find /C ":""
  44.  
  45. for /f %%a in ('!cmd!') do set number=%%a
  46.  
  47. set /a number=%number%/4
  48. set /a numofhdrives=%number%
  49. echo Number of Hard Drives: %number%
  50.  
  51.  
  52. set number=0
  53. :separatehdinfo0
  54. type hddevid.temp>hddevid%number%.temp
  55. type hdmodel.temp>hdmodel%number%.temp
  56. type hdsize.temp>hdsize%number%.temp
  57. for /f "tokens=1 delims=:" %%a in ('
  58. findstr /n /c:"%number%" hddevid%number%.temp
  59. ') do set hdnumline=%%a
  60. echo ----------------------------------------
  61. echo Line in Data: %hdnumline%
  62. set /a hdnumline=%hdnumline%-1
  63.  
  64.  
  65. for %%x in (hddevid%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
  66. for %%x in (hdmodel%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
  67. for %%x in (hdsize%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
  68.  
  69.  
  70. set /p hddevidnum%number%=<hddevid%number%.temp
  71. set /p hdmodelnum%number%=<hdmodel%number%.temp
  72. set /p hdsizenum%number%=<hdsize%number%.temp
  73.  
  74. echo !hddevidnum%number%!
  75. echo !hdmodelnum%number%!
  76. echo !hdsizenum%number%!
  77.  
  78.  
  79. set /a total=!hdsizenum%number%!+!hdsizenum%numbers%!
  80.  
  81. echo Combined Hard Disk Size: %total%
  82.  
  83.  
  84. set /a number=%number%+1
  85. if /i %number% == %numofhdrives% goto :leave0
  86. goto :separatehdinfo0
  87. :leave0
  88.  
  89.  
  90.  
  91.  
  92.  
  93. echo.
  94. echo.
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. :: Start RAM Section
  103. echo Start of RAM Section
  104. echo Grabbing Number of sticks
  105. @echo off
  106. wmic memphysical get memorydevices >ramsticks.temp
  107. wmic memphysical get MaxCapacity >ramsize.temp
  108. wmic memphysical get tag >rammodel.temp
  109.  
  110. for %%x in (ramsticks.temp) do (more +1 "%%x">tmp & move /y tmp "%%x")
  111. set "cmd=findstr /R /N "^^" ramsticks.temp | find /C ":""
  112. for /f %%a in ('!cmd!') do set number=%%a
  113. set numoframsticklines=%number%
  114. echo %number%
  115.  
  116. set number=0
  117. :ramsticknumber
  118. set /p ramsticksnum%number%=<ramsticks.temp
  119. for %%x in (ramsticks.temp) do (more +1 "%%x">tmp & move /y tmp "%%x")
  120.  
  121. echo !ramsticksnum%number%!
  122.  
  123. echo %numoframsticklines%
  124.  
  125. set /a numbers=number-1
  126. set /a totalsticks=!ramsticksnum%number%!+!ramsticksnum%numbers%!
  127.  
  128. echo Total: %totalsticks%
  129.  
  130.  
  131. set /a number=%number%+1
  132. if /i %number% == %numoframsticklines% goto :leave1
  133. goto :ramsticknumber
  134. :leave1
  135.  
  136. echo.
  137. echo.
  138.  
  139. echo Grabbing RAM Information
  140.  
  141. set "cmd=findstr /R /N "^^" rammodel.temp | find /C ":""
  142.  
  143. for /f %%a in ('!cmd!') do set number=%%a
  144. set /a number=%number%-2
  145. set /a numoframem=%number%
  146. echo Number of Stick Arrays: %number%
  147.  
  148. @echo off
  149. set number=0
  150. :separateraminfo0
  151. type ramsticks.temp>ramsticks%number%.temp
  152. type rammodel.temp>rammodel%number%.temp
  153. type ramsize.temp>ramsize%number%.temp
  154. for /f "tokens=1 delims=:" %%a in ('
  155. findstr /n /c:"%number%" rammodel%number%.temp
  156. ') do set ramnumline=%%a
  157. echo ----------------------------------------
  158. echo Line in Data: %ramnumline%
  159. set /a ramnumline=%ramnumline%-1
  160.  
  161. for %%x in (ramsticks%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
  162. for %%x in (rammodel%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
  163. for %%x in (ramsize%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
  164.  
  165.  
  166.  
  167. set /p ramsticksnum%number%=<ramsticks%number%.temp
  168. set /p rammodelnum%number%=<rammodel%number%.temp
  169. set /p ramsizenum%number%=<ramsize%number%.temp
  170.  
  171. set /a numbers=number-1
  172.  
  173. set /a ramsizenum%number%=!ramsizenum%number%!*!ramsticksnum%number%!
  174.  
  175. set /a total=!ramsizenum%number%!+!ramsizenum%numbers%!
  176.  
  177. echo Number of Sticks: !ramsticksnum%number%!
  178. echo Array Number: !rammodelnum%number%!
  179. echo Combined Sizes: !ramsizenum%number%!
  180. echo Total RAM Size: %total%
  181.  
  182. set /a number=%number%+1
  183. if /i %number% == %numoframem% goto :leave2
  184. goto :separateraminfo0
  185. :leave2
  186.  
  187.  
  188.  
  189.  
  190.  
  191. echo.
  192. echo.
  193.  
  194.  
  195.  
  196.  
  197.  
  198. ::Delete temp files.
  199. @echo off
  200. for /f %%A in ('dir ^| find "File(s)"') do set cnt=%%A
  201. echo Temporary folders created: 1
  202. echo Temporary files created: %cnt%
  203. echo Deleting all %cnt% files . . .
  204. @echo off
  205. CD /D "%maindir%"
  206. rmdir /s /q %directory%
  207.  
  208. echo.
  209. echo All %cnt% files were successfully deleted
  210.  
  211. echo.
  212. echo Press any key to continue . . .
  213.  
  214.  
  215. ::And done.
  216. goto :end
  217.  
  218.  
  219.  
  220. ::Comments
  221. ::This will be incorporated into the main PassMark script soon.
  222. ::I need to add GPU to this and then do some VBScript/Powershell
  223. ::math to convert the bytes to an understandable format. (below)
  224. ::RAM will not be able to be pulled from PassMark due
  225. ::to the fact that the Operating System does not
  226. ::provide me with the stick manufacturers or
  227. ::model numbers. That's all for now.
  228.  
  229.  
  230. ::For those wondering, there is a 32-bit precision limit in batch.
  231. ::Therefore to do an Average CPU rating I need to use something
  232. ::like VBScript or Powershell. 10 digits is the 32-bit limit.
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241. :: Unused code that will be used in the future.
  242. :: Currently the code gets skipped over.
  243. set number=0
  244. :separatebyteinfo0
  245. rem for /f "tokens=1 delims=:" %%a in ('
  246. rem findstr /n /c:"%number%" hddevid%number%.temp
  247. rem ') do set hdnumline=%%a
  248.  
  249.  
  250. rem echo !ramsizenum%number%!
  251. rem echo !hdsizenum%number%!
  252.  
  253.  
  254. rem for /f %%N in ('powershell !hdsizenum%number%!/1024/1024/1024/1024') do set sizehd=%%N
  255. rem for /f %%N in ('powershell !ramsizenum%number%!/1024/1024/1024') do set sizeram=%%N
  256.  
  257. rem echo HD: %sizeram%
  258. rem echo RAM: %sizehd%
  259.  
  260. set /a number=%number%+1
  261. if /i %number% == %numofhdrives%
  262.  &&
  263.  if /i %number% == %numoframem%
  264.   &&
  265.   goto :leave3
  266. goto :separatebyteinfo0
  267. :leave3
  268.  
  269.  
  270.  
  271.    
  272.    :end
  273.    
  274.    
  275.    
  276. pause >nul
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement