1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| ::显示或者隐藏命令 //ECHO [ON | OFF] @ ECHO OFF REM 修复电脑磁盘图标。 ::设置颜色为 淡蓝色背景色,白色前景色 COLOR 9F ::设置运行窗口标题 TITLE XP 、Win7电脑磁盘图标--修复 ::提示以管理员身份运行 ECHO ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ECHO ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ECHO ☆ ☆ ECHO ☆ 为了能够成功修复,请使用管理员身份运行 [鼠标右键单击--以管理员身份运行] ☆ ECHO ☆ ☆ ECHO ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
::检测系统版本,如果需要并跳转到相应的系统标签处进行执行 VER|FINDSTR /I "5.1" && GOTO XP || GOTO Win7 :: XP 系统的方案 :XP ::说明可能导致此问题的相关原因 ECHO 主要症状: ECHO 磁盘图标显示未知或者为其他图标。 ECHO 1.可能由于注册表异常导致。 ECHO 2.相关服务未启用。 ECHO 3.设置了磁盘分区的Antorun.inf。 ECHO 4.更改了shell32.dll中分区图标,或者shell32.dll文件损坏。 ECHO 5.缓存过旧导致的异常。 ECHO ===================================== ::信息提示并作出选择 ::暂不使用此句 CHOICE /C YN /T 10 /D Y /M "您好,键入 Y 执行修复,N 退出,如未操作,默认十秒后自动执行修复。 set /P IS=您好,键入 Y 执行修复,N 退出。(不区分大小写,输入错误将直接退出) 输入后回车 ::判断输入的字符 ::暂不使用此句 IF ERRORLEVEL 2 (EXIT) ELSE (GOTO R) IF /I %IS% EQU Y (GOTO R) ELSE (EXIT) :: Win7 系统的方案 :Win7 ::说明可能导致此问题的相关原因 ECHO 主要症状: ECHO. ECHO 磁盘图标显示未知或者为其他图标。 ECHO. ECHO 1.可能由于注册表异常导致。 ECHO. ECHO 2.相关服务未启用。 ECHO. ECHO 3.设置了磁盘分区的Antorun.inf。 ECHO. ECHO 4.更改了shell32.dll中分区图标,或者shell32.dll文件损坏。 ECHO. ECHO 5.缓存过旧导致的异常。 ECHO ===================================== ::信息提示并作出选择 CHOICE /C YN /T 10 /D Y /M "您好,键入 Y 执行修复,N 退出,如未操作,默认十秒后自动执行修复。 ::暂不使用此句 set /P IS=您好,键入 Y 执行修复,N 退出。(不区分大小写,输入错误将直接退出) 输入后回车 ::判断输入的字符 IF ERRORLEVEL 2 (EXIT) ELSE (GOTO R) ::暂不使用此句 IF /I %IS% EQU Y (GOTO R) ELSE (EXIT)
::标签R :R ECHO. ECHO ///////////////////////////////// ECHO //如遇到安全软件拦截请解除拦截。/ ECHO /////////////////////////////////
::首先执行备份至临时目录 ECHO. ECHO ■■■■ 备份autorun.inf文件 ■■■■ ECHO ┌────────────┐ FOR %%i IN ( C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST "%%i:\\autorun.inf" ( COPY /Y %%i:\\autorun.inf %TEMP%\\%%iautorun.inf) ELSE ( ECHO 未备份 %%i:盘autorun.inf 文件) ECHO └────────────┘ ECHO %TEMP% ECHO ☆☆autorun.inf备份至临时目录☆☆
ECHO. ECHO ■■■■ 删除autorun.inf文件 ■■■■ ECHO ┌────────────┐ FOR %%i IN ( C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST "%%i:\\autorun.inf" ( DEL /F /Q /A %%i:\\autorun.inf) ELSE ( ECHO %%i:盘未发现autorun.inf 文件) ECHO └────────────┘ ECHO ☆☆autorun.inf文件删除完毕☆☆
ECHO. ECHO ■■■■ 备份注册表 ■■■■ ECHO ┌────────────┐ REG EXPORT HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\DriveIcons %TEMP%\\HKLM.DriveIcons.reg /y ECHO └────────────┘ ECHO ☆☆注册表备份完毕☆☆
ECHO. ECHO ■■■■ 清理注册表 ■■■■ ECHO ┌────────────┐ REG DELETE "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\DriveIcons" /f ECHO └────────────┘ ECHO ☆☆注册表清理完毕☆☆
ECHO. ECHO ■■■■ 重启 ShellHWDetection 服务 ■■■■ ECHO ┌────────────┐ ::NET START [service] ::NET STOP [service] ::sc config [service] start= demand //手动 ::sc config [service] start= auto //自动 ::sc config [service] start= disabled //禁用 ::sc start [service] ::sc stop [service] net start ShellHWDetection sc config ShellHWDetection start= auto sc start ShellHWDetection ECHO └────────────┘ ECHO ☆☆ShellHWDetection 服务启动完毕☆☆
::判断图标缓存文件 IconCache.db 是否存在 ,是则删除文件 IF EXIST "%USERPROFILE%\\AppData\\Local\\IconCache.db" (DEL /F /Q /A "%USERPROFILE%\\AppData\\Local\\IconCache.db") ELSE (ECHO 未发现图标缓存文件) IF EXIST "%USERPROFILE%\\LocalSettings\\Application Data\\IconCache.db" (DEL /F /Q /A "%USERPROFILE%\\LocalSettings\\Application Data\\IconCache.db") ELSE (ECHO 未发现图标缓存文件) ::重启 explorer 进程 TASKKILL /IM explorer.exe /F start "" "explorer.exe"
ECHO.
ECHO ┌────────────┐ ECHO 如问题没有有效解决可尝试 ECHO 右键单击 “计算机” - “管理” - “磁盘管理”中更改磁盘的盘符来解决。 ECHO └────────────┘
ECHO. ::等待按键继续 ECHO ....................................................................... echo 操作完毕,如果提示成功并且还存在问题建议重启计算机后查看是否已经修复. pause>nul
|