@ECHO OFF
IF NOT "%
OS%"=="Windows_NT"
GOTO Syntax
IF NOT "%~3"==""
GOTO Syntax
ECHO.%* | FIND "?" >NUL &&
GOTO Syntax
SETLOCAL ENABLEDELAYEDEXPANSION
SET Valid=0
FOR %%A
IN ("" CPU D3D Disk Graphics Mem Memory Level Total Vid Video)
DO (
IF /I "%~1"=="%%~A"
SET Valid=1
)
IF NOT "%Valid%"=="1" (
ENDLOCAL
GOTO Syntax
)
IF "%~2"=="" (
SET Node=%ComputerName%
)
ELSE (
SET Node=%~2
)
SET RC=
SET WinSATAssessmentState.0=StateUnknown
SET WinSATAssessmentState.1=Valid
SET WinSATAssessmentState.2=IncoherentWithHardware
SET WinSATAssessmentState.3=NoAssessmentAvailable
SET WinSATAssessmentState.4=Invalid
FOR /F "tokens=1* delims==" %%A
IN ('
WMIC /Node:"%Node%" Path Win32_WinSAT Where TimeTaken^="MostRecentAssessment" Get WinSATAssessmentState /Format:LIST')
DO (
IF NOT "%%~B"=="" (
FOR %%C
IN (%%~B)
DO (
SET Win32_WinSAT.WinSATAssessmentState=!WinSATAssessmentState.%%C!
)
)
)
FOR /F "tokens=1* delims==" %%A
IN ('
WMIC /Node:"%Node%" Path Win32_WinSAT Where TimeTaken^="MostRecentAssessment" Get WinSPRLevel /Format:LIST')
DO (
IF NOT "%%~B"=="" (
SET Result=%%~B
FOR %%C
IN ("!Result:,=.!")
DO (
SET Win32_WinSAT.WinSPRLevel=%%~C
)
)
)
FOR /F "tokens=1* delims==" %%A
IN ('
WMIC /Node:"%Node%" Path Win32_WinSAT Where TimeTaken^="MostRecentAssessment" Get * /Format:LIST ^| FINDSTR /R /B /I /C:"%~1[^=]*Score="')
DO (
IF NOT "%%~B"=="" (
FOR %%C
IN (%%~B)
DO IF "!RC!"==""
SET /A RC = %%~C
SET Result=%%~B
FOR %%C
IN ("!Result:,=.!")
DO (
SET Win32_WinSAT.%%A=%%~C
)
)
)
IF "%~1"==""
SET RC=%Win32_WinSAT.WinSPRLevel%
SET Win32_WinSAT.
ENDLOCAL & EXIT /B %RC%
:Syntax
ECHO.
ECHO WinSAT.bat, Version 1.00
ECHO Return Windows System Assessment Tools'
s scores for the specified computer
ECHO.
ECHO Usage: WINSAT [ component [ computer ] ]
ECHO.
ECHO Where: "component" can have one of the following values:
ECHO "CPU" to return the WinSAT CPU Score
ECHO "D3D" to return the WinSAT CPU Score
ECHO "Disk" to return the WinSAT Disk Score
ECHO "Graphics", "Vid" or "Video" to return the WinSAT Graphics Score
ECHO "Mem" or "Memory" to return the WinSAT Disk Score
ECHO "Level" or "Total" to return the WinSAT Total Score (WinSPRLevel)
ECHO "computer" is an optional remote computer (default: local computer)
ECHO.
ECHO Notes: If a component is specified, only the score for that component will
ECHO be displayed on screen.
ECHO The integer value for the specified score will be returned as
ECHO "errorlevel".
ECHO If no component is specified, ALL scores will be displayed on screen,
ECHO and the "errorlevel" will be the integer value of the total score.
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
IF "%OS%"=="Windows_NT" EXIT /B 1