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):
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% Hora: %NOWTIME% 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
Comentarios
Publicar un comentario