SCRIPT: automatizando chequeos del sistema operativo (Windows 11, CHKDSK, SFC y DISM)

 Instrucciones:

En ChatGpt.com , pídele esto (o adáptalo a tu gusto):

A partir de estos puntos (CHKDSK, SFC y DISM), crea un archivo Script (.BAT), para que Windows 11 pueda hacer ese chequeo, aceptando, de forma automática, cualquier interacción desde el sistema operativo, generando un reporte en C:\REPORTES , con la fecha expresada en YYYY-MM-DD (p.ej. 2025-11-10) y en formato HTML (si da problemas, pídele que sea un .TXT).

Ten en cuenta que "DISM" necesita conexión a Internet, si te da fallo, puede ser, a mayores, por no haberlo ejecutado como "Administrador" o desde un usuario "sin limitaciones" (no "estándar").

NOTA:  Pulsa Windows + R , escribe:     %TEMP%   (consigues el símbolo de % con SHIFT/MAYUS, la tecla que está justo encima de CTRL/CONTROL y pulsando el número 5) , te llevará a una carpeta como esta:


Y al entrar en cualquiera de las carpetas que ponen "chequeo....", verás algo como esto:




Ve abriendo los diferentes archivos .txt y comprueba, al final del mismo (usa CTRL + END/FIN , normalmente, a la derecha de "ENTER"), que aparece algo como esto:









Posiblemente te genere un código como este, sólo debes copiarlo, abrir bloc de notas (Inicio - Bloc, eligiendo el programa o pulsando "Windows + R" , escribiendo NOTEPAD y confirmando con ENTER).

Tras pegarlo, guarda como (Archivo - Guardar como....) , "todos los archivos", renombrando el "@echo off", por "chequeo-automatico.bat":



Código:

@echo off

setlocal EnableExtensions EnableDelayedExpansion

:: ===========================

:: Chequeo integral: CHKDSK, SFC, DISM

:: Reporte HTML en C:\REPORTES con fecha YYYY-MM-DD

:: Requiere privilegios de administrador (auto-elevación incluida)

:: ===========================


:: Forzar UTF-8 para que el HTML y la salida muestren acentos correctamente

chcp 65001 >nul


:: --- Auto-elevación si no somos admin ---

whoami /groups | find "S-1-5-32-544" >nul

if errorlevel 1 (

  echo Elevando privilegios...

  powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"

  exit /b

)


:: --- Fecha YYYY-MM-DD y hora ---

for /f %%I in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy-MM-dd\")"') do set TODAY=%%I

for /f %%I in ('powershell -NoProfile -Command "(Get-Date).ToString(\"HH:mm:ss\")"') do set NOWTIME=%%I


:: --- Rutas ---

set "REPORTDIR=C:\REPORTES"

if not exist "%REPORTDIR%" mkdir "%REPORTDIR%" 2>nul


set "HTML=%REPORTDIR%\REPORTE_%TODAY%.html"

set "TMP=%TEMP%\chequeo_%RANDOM%"

mkdir "%TMP%" 2>nul


echo Iniciando chequeos del sistema... (esto puede tardar)


:: ===========================

:: 1) CHKDSK

:: ===========================

:: Escaneo en línea (rápido, no requiere reinicio)

echo Ejecutando CHKDSK /scan...

chkdsk C: /scan > "%TMP%\chkdsk_scan.txt" 2>&1


:: Intento de corrección automática. Si el volumen está en uso, se programará en el próximo reinicio (acepta "Y" automáticamente).

echo Intentando CHKDSK /F (se programará si es necesario)...

echo Y | chkdsk C: /F > "%TMP%\chkdsk_fix.txt" 2>&1


:: ===========================

:: 2) SFC

:: ===========================

echo Ejecutando SFC /scannow...

sfc /scannow > "%TMP%\sfc.txt" 2>&1


:: ===========================

:: 3) DISM

:: ===========================

echo Ejecutando DISM /Online /Cleanup-Image /ScanHealth...

dism /Online /Cleanup-Image /ScanHealth > "%TMP%\dism_scan.txt" 2>&1


echo Ejecutando DISM /Online /Cleanup-Image /RestoreHealth...

dism /Online /Cleanup-Image /RestoreHealth > "%TMP%\dism_restore.txt" 2>&1


:: ===========================

:: 4) Construcción del HTML

:: ===========================

(

  echo ^<!DOCTYPE html^>

  echo ^<html lang="es"^>

  echo ^<head^>

  echo   ^<meta charset="utf-8"^> 

  echo   ^<meta name="viewport" content="width=device-width, initial-scale=1"^>

  echo   ^<title^>Reporte de Chequeo del Sistema - %TODAY%^</title^>

  echo   ^<style^>

  echo     body{font-family: Segoe UI, Roboto, Arial, sans-serif; margin:24px; line-height:1.35; background:#f7f7f8}

  echo     h1{margin-top:0}

  echo     .card{background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:16px; margin:16px 0; box-shadow:0 1px 2px rgba(0,0,0,.04)}

  echo     pre{white-space:pre-wrap; word-wrap:break-word; background:#0b1021; color:#e5e7eb; padding:12px; border-radius:10px; overflow:auto}

  echo     .small{color:#6b7280; font-size:12px}

  echo   ^</style^>

  echo ^</head^>

  echo ^<body^>

  echo   ^<h1^>Reporte de Chequeo del Sistema^</h1^>

  echo   ^<div class="small"^>Fecha: %TODAY% &nbsp;&nbsp; Hora: %NOWTIME%&nbsp;&nbsp; Equipo: %COMPUTERNAME% ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>CHKDSK (C: /scan)^</h2^>

  echo     ^<pre^>

) > "%HTML%"


type "%TMP%\chkdsk_scan.txt" >> "%HTML%"


(

  echo     ^</pre^>

  echo   ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>CHKDSK (C: /F)^</h2^>

  echo     ^<pre^>

) >> "%HTML%"


type "%TMP%\chkdsk_fix.txt" >> "%HTML%"


(

  echo     ^</pre^>

  echo     ^<p class="small"^>Si se ha indicado que el volumen est^^a en uso, CHKDSK quedar^^a programado para el pr^^oximo reinicio.^</p^>

  echo   ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>SFC /scannow^</h2^>

  echo     ^<pre^>

) >> "%HTML%"


type "%TMP%\sfc.txt" >> "%HTML%"


(

  echo     ^</pre^>

  echo   ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>DISM /ScanHealth^</h2^>

  echo     ^<pre^>

) >> "%HTML%"


type "%TMP%\dism_scan.txt" >> "%HTML%"


(

  echo     ^</pre^>

  echo   ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>DISM /RestoreHealth^</h2^>

  echo     ^<pre^>

) >> "%HTML%"


type "%TMP%\dism_restore.txt" >> "%HTML%"


(

  echo     ^</pre^>

  echo   ^</div^>


  echo   ^<div class="card"^>

  echo     ^<h2^>Resumen^</h2^>

  echo     ^<p^>Este documento consolida la salida de CHKDSK, SFC y DISM. Revisa los bloques anteriores para ver detalles, errores o acciones programadas.^</p^>

  echo     ^<p class="small"^>Ruta del reporte: %HTML%^</p^>

  echo   ^</div^>

  echo ^</body^>

  echo ^</html^>

) >> "%HTML%"


:: Limpieza temporal

rd /s /q "%TMP%" >nul 2>&1


echo.

echo Hecho. Abriendo el reporte: %HTML%

start "" "%HTML%"


endlocal

exit /b




NOTA: Recuerda ejecutarlo como Administrador (botón derecho, ejecutar "como Administrador"), de lo contrario, la orden de CHKDSK se cancelerá y el resto del script NO se ejecutará (falla el primer paso y literalmente, "te echa")



Comentarios

Entradas populares de este blog

Preparación completa de portátil Gaming (Drivers + proceso)

Limpiando y optimizando Windows (Parte 1)