全选下面的代码复制到记事本,文件名称另存为“修复系统脚本.bat”,文件类型选“所有文件”,编码选“ANSI”,完成后选中该文件单击鼠标右键,选择“以管理员身份运行”,可以看看结果
:: 清理Windows更新缓存&使用DISM工具修复系统映像
@echo off
:: 管理员权限检查
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:: 主程序开始
cls
echo ============================================
echo Windows系统维护工具
echo 1.清理更新缓存 2.DISM修复 3.全部执行
echo ============================================
set /p choice=请选择操作(1/2/3):
if "%choice%"=="1" goto CleanCache
if "%choice%"=="2" goto DISMRepair
if "%choice%"=="3" goto AllTasks
echo 无效输入,程序退出
pause
exit /b
:CleanCache
echo 正在停止Windows更新相关服务...
net stop wuauserv >nul 2>&1
net stop cryptSvc >nul 2>&1
net stop bits >nul 2>&1
net stop msiserver >nul 2>&1
echo 正在清理SoftwareDistribution文件夹...
if exist "%windir%\SoftwareDistribution\*" (
rd /s /q "%windir%\SoftwareDistribution"
md "%windir%\SoftwareDistribution"
)
echo 正在重新启动服务...
net start wuauserv >nul 2>&1
net start cryptSvc >nul 2>&1
net start bits >nul 2>&1
net start msiserver >nul 2>&1
echo 更新缓存清理完成!
pause
exit /b
:DISMRepair
echo 正在检查系统映像健康状态...
DISM /Online /Cleanup-Image /CheckHealth
echo.
echo 正在扫描系统映像损坏情况...
DISM /Online /Cleanup-Image /ScanHealth
echo.
echo 正在修复系统映像(可能需要10-20分钟)...
DISM /Online /Cleanup-Image /RestoreHealth
echo.
echo 正在运行SFC扫描验证...
sfc /scannow
echo.
echo DISM修复操作完成!
pause
exit /b
:AllTasks
call :CleanCache
call :DISMRepair
echo 所有维护任务已完成!
pause
|