@echo off
:: =========================================================
:: DISM Health Check & Repair Script
:: Runs ScanHealth, and if needed, runs RestoreHealth
:: =========================================================

:: Ensure script is run as Administrator
>nul 2>&1 net session
if %errorlevel% neq 0 (
    echo [ERROR] Please run this script as Administrator.
    pause
    exit /b 1
)

:: Set log file path
set "LOGFILE=%~dp0DISM_HealthCheck_%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%-%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.log"

echo ======================================================== >> "%LOGFILE%"
echo DISM Health Check Started: %DATE% %TIME% >> "%LOGFILE%"
echo ======================================================== >> "%LOGFILE%"

echo.
echo [INFO] Running DISM /ScanHealth ...
echo [INFO] This may take several minutes.
echo.

:: Run ScanHealth and capture output
dism /Online /Cleanup-Image /ScanHealth >> "%LOGFILE%" 2>&1

:: Check ScanHealth result
findstr /C:"The component store is repairable" "%LOGFILE%" >nul
if %errorlevel%==0 (
    echo.
    echo [WARNING] Corruption detected. Running RestoreHealth...
    echo [WARNING] Corruption detected. Running RestoreHealth... >> "%LOGFILE%"
    dism /Online /Cleanup-Image /RestoreHealth >> "%LOGFILE%" 2>&1
    if %errorlevel%==0 (
        echo [SUCCESS] RestoreHealth completed successfully.
        echo [SUCCESS] RestoreHealth completed successfully. >> "%LOGFILE%"
    ) else (
        echo [ERROR] RestoreHealth failed. Check the log for details.
        echo [ERROR] RestoreHealth failed. >> "%LOGFILE%"
    )
) else (
    echo.
    echo [OK] No corruption detected. No repair needed.
    echo [OK] No corruption detected. >> "%LOGFILE%"
)

echo.
echo [INFO] DISM process completed. Log saved to:
echo %LOGFILE%

:: Extract parts of the date (U.S. format: DayOfWeek MM/DD/YYYY)
set "today=%date%"
set "yyyy=%today:~10,4%"
set "mm=%today:~4,2%"
set "dd=%today:~7,2%"
set "now=%time%"
set "hh=%now:~0,2%"
set "mm"=%now:~3,2%"

:: Combine into YYYY-MM-DD
::set "formatted=%yyyy%-%mm%-%dd%"

set "formatted=c:\data\2-hours-%yyyy%-%mm%-%dd%-%hh%-%mm%.jpg"
echo %formatted%
if exist c:\data\aida64engineer830_portable\aida64.exe (
	c:\data\aida64engineer830_portable\aida64.exe /SST CPU,FPU,Cache,RAM,Disk,GPU /SSTDUR 120 /SSTSHOT %formatted%
	::aida64.exe /SST CPU,FPU,Cache,RAM,Disk,GPU /SSTDUR 60 /SSTSHOT %formatted%
	::aida64.exe /SST CPU,FPU,Cache,RAM /SSTDUR 60 /SSTSHOT %formatted%
)

