Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal enabledelayedexpansion
- :: This will be added to http://pastebin.com/tvB0t4MW soon.
- :: This is still being worked on. The base of it is done.
- :: Script Version: 1.0
- :: by Wesley J. B.
- :: 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,
- :: 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.
- :: 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.
- :: Warning: RAM always displays the wrong amount. Don't trust the amount it gives you at this current time.
- :: I have 12 GB and when converting the bytes through online sources, it returns with less than 1 GB.
- rem type testing.temp > hdsize.temp
- mkdir "%CD%\testing"
- set maindir="%CD%"
- set directory="%CD%\testing"
- CD /D "%directory%"
- ::Start HD Section
- echo Start HD Section
- echo.
- echo.
- wmic diskdrive list full /format:list >testing.temp
- wmic diskdrive get model /format:list >hdmodel.temp
- wmic diskdrive get size /format:list >hdsize.temp
- wmic diskdrive get deviceid /format:list >hddevid.temp
- setlocal EnableDelayedExpansion
- set "cmd=findstr /R /N "^^" hdmodel.temp | find /C ":""
- for /f %%a in ('!cmd!') do set number=%%a
- set /a number=%number%/4
- set /a numofhdrives=%number%
- echo Number of Hard Drives: %number%
- set number=0
- :separatehdinfo0
- type hddevid.temp>hddevid%number%.temp
- type hdmodel.temp>hdmodel%number%.temp
- type hdsize.temp>hdsize%number%.temp
- for /f "tokens=1 delims=:" %%a in ('
- findstr /n /c:"%number%" hddevid%number%.temp
- ') do set hdnumline=%%a
- echo ----------------------------------------
- echo Line in Data: %hdnumline%
- set /a hdnumline=%hdnumline%-1
- for %%x in (hddevid%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
- for %%x in (hdmodel%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
- for %%x in (hdsize%number%.temp) do (more +%hdnumline% "%%x">tmp & move /y tmp "%%x")
- set /p hddevidnum%number%=<hddevid%number%.temp
- set /p hdmodelnum%number%=<hdmodel%number%.temp
- set /p hdsizenum%number%=<hdsize%number%.temp
- echo !hddevidnum%number%!
- echo !hdmodelnum%number%!
- echo !hdsizenum%number%!
- set /a total=!hdsizenum%number%!+!hdsizenum%numbers%!
- echo Combined Hard Disk Size: %total%
- set /a number=%number%+1
- if /i %number% == %numofhdrives% goto :leave0
- goto :separatehdinfo0
- :leave0
- echo.
- echo.
- :: Start RAM Section
- echo Start of RAM Section
- echo Grabbing Number of sticks
- @echo off
- wmic memphysical get memorydevices >ramsticks.temp
- wmic memphysical get MaxCapacity >ramsize.temp
- wmic memphysical get tag >rammodel.temp
- for %%x in (ramsticks.temp) do (more +1 "%%x">tmp & move /y tmp "%%x")
- set "cmd=findstr /R /N "^^" ramsticks.temp | find /C ":""
- for /f %%a in ('!cmd!') do set number=%%a
- set numoframsticklines=%number%
- echo %number%
- set number=0
- :ramsticknumber
- set /p ramsticksnum%number%=<ramsticks.temp
- for %%x in (ramsticks.temp) do (more +1 "%%x">tmp & move /y tmp "%%x")
- echo !ramsticksnum%number%!
- echo %numoframsticklines%
- set /a numbers=number-1
- set /a totalsticks=!ramsticksnum%number%!+!ramsticksnum%numbers%!
- echo Total: %totalsticks%
- set /a number=%number%+1
- if /i %number% == %numoframsticklines% goto :leave1
- goto :ramsticknumber
- :leave1
- echo.
- echo.
- echo Grabbing RAM Information
- set "cmd=findstr /R /N "^^" rammodel.temp | find /C ":""
- for /f %%a in ('!cmd!') do set number=%%a
- set /a number=%number%-2
- set /a numoframem=%number%
- echo Number of Stick Arrays: %number%
- @echo off
- set number=0
- :separateraminfo0
- type ramsticks.temp>ramsticks%number%.temp
- type rammodel.temp>rammodel%number%.temp
- type ramsize.temp>ramsize%number%.temp
- for /f "tokens=1 delims=:" %%a in ('
- findstr /n /c:"%number%" rammodel%number%.temp
- ') do set ramnumline=%%a
- echo ----------------------------------------
- echo Line in Data: %ramnumline%
- set /a ramnumline=%ramnumline%-1
- for %%x in (ramsticks%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
- for %%x in (rammodel%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
- for %%x in (ramsize%number%.temp) do (more +%ramnumline% "%%x">tmp & move /y tmp "%%x")
- set /p ramsticksnum%number%=<ramsticks%number%.temp
- set /p rammodelnum%number%=<rammodel%number%.temp
- set /p ramsizenum%number%=<ramsize%number%.temp
- set /a numbers=number-1
- set /a ramsizenum%number%=!ramsizenum%number%!*!ramsticksnum%number%!
- set /a total=!ramsizenum%number%!+!ramsizenum%numbers%!
- echo Number of Sticks: !ramsticksnum%number%!
- echo Array Number: !rammodelnum%number%!
- echo Combined Sizes: !ramsizenum%number%!
- echo Total RAM Size: %total%
- set /a number=%number%+1
- if /i %number% == %numoframem% goto :leave2
- goto :separateraminfo0
- :leave2
- echo.
- echo.
- ::Delete temp files.
- @echo off
- for /f %%A in ('dir ^| find "File(s)"') do set cnt=%%A
- echo Temporary folders created: 1
- echo Temporary files created: %cnt%
- echo Deleting all %cnt% files . . .
- @echo off
- CD /D "%maindir%"
- rmdir /s /q %directory%
- echo.
- echo All %cnt% files were successfully deleted
- echo.
- echo Press any key to continue . . .
- ::And done.
- goto :end
- ::Comments
- ::This will be incorporated into the main PassMark script soon.
- ::I need to add GPU to this and then do some VBScript/Powershell
- ::math to convert the bytes to an understandable format. (below)
- ::RAM will not be able to be pulled from PassMark due
- ::to the fact that the Operating System does not
- ::provide me with the stick manufacturers or
- ::model numbers. That's all for now.
- ::For those wondering, there is a 32-bit precision limit in batch.
- ::Therefore to do an Average CPU rating I need to use something
- ::like VBScript or Powershell. 10 digits is the 32-bit limit.
- :: Unused code that will be used in the future.
- :: Currently the code gets skipped over.
- set number=0
- :separatebyteinfo0
- rem for /f "tokens=1 delims=:" %%a in ('
- rem findstr /n /c:"%number%" hddevid%number%.temp
- rem ') do set hdnumline=%%a
- rem echo !ramsizenum%number%!
- rem echo !hdsizenum%number%!
- rem for /f %%N in ('powershell !hdsizenum%number%!/1024/1024/1024/1024') do set sizehd=%%N
- rem for /f %%N in ('powershell !ramsizenum%number%!/1024/1024/1024') do set sizeram=%%N
- rem echo HD: %sizeram%
- rem echo RAM: %sizehd%
- set /a number=%number%+1
- if /i %number% == %numofhdrives%
- &&
- if /i %number% == %numoframem%
- &&
- goto :leave3
- goto :separatebyteinfo0
- :leave3
- :end
- pause >nul
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement