通常,要刷新Windows中的图标缓存,我们必须重新启动。

是否可以在不重新启动的情况下刷新Windows 7/8中的图标缓存?

评论

你尝试了什么?发生了什么?为什么需要完成它?您是在Windows资源管理器,“开始”菜单,任务栏上还是在哪里?需要更多信息

是的,我做了...这就是为什么我要澄清。我在评论队列中看到了此内容,所以我现在只阅读答案,但请记住,该网站还可以帮助Google或其他搜索引擎的访问者

通常,当我们在Windows中刷新图标缓存时,我们必须重新启动,但是我的问题和答案是在不重新启动的情况下完成的。 blog.stackoverflow.com/2011/07/…

于2017年12月通过Google找到了这个问题。感谢发布。我喜欢制作简短批处理文件的答案。因此,在评论中,我包括了这样做的过程。现在,我的Win8.1图标已修复。谢谢。极好的问题。

#1 楼

是的。

您只需运行以下命令即可清除图标缓存:

ie4uinit.exe -ClearIconCache


对于Windows 10,请使用:

ie4uinit.exe -show




查看此视频以获取演示。

[小费]

评论


在Windows 8.1上不起作用。您必须按照@ Techie007的说明删除IconCache.db。

– Helge Klein
15年1月19日在20:05

在Windows 7中似乎对我不起作用

– Joris Groosman
15年12月28日在9:38

对于Windows 10,使用同一页中提到的参数“ show”(提示信用)。

– w32sh
16年4月7日在14:14

@Crazy只是1班轮吗? SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST,NULL,NULL);

– Elmo
16年4月16日在21:32

ie4uinit.exe -show在Windows 10中为我工作,谢谢!比大多数教程告诉您删除一堆.db文件容易得多!

–杰兹
19年5月24日在10:41

#2 楼

自Vista以来,以下方法一直有效;需要重新启动资源管理器,但无需重新启动。

短版本:停止所有explorer.exe实例,删除用户隐藏的IconCache.db文件,然后重新启动资源管理器。

长版本(有其他方式):


关闭所有当前打开的资源管理器窗口。
使用CTRL + SHIFT + ESC键序列或运行taskmgr.exe启动任务管理器。 br />在“进程”选项卡中,右键单击explorer.exe进程,然后选择“结束进程”。
在要求确认时单击“结束进程”按钮。
从任务管理器的“文件”菜单中,选择“新建任务”(运行…)
键入CMD.EXE,然后单击“确定”

在“命令提示符”窗口中,逐一键入命令,然后在每个命令后按Enter:

CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
EXIT


在“任务管理器”中,单击“文件”,选择“新建任务(运行...)
,键入EXPLORER.EXE,然后单击“确定”。

说明步骤源

警告:删除IconCache时不要运行Explorer.exe,这一点很重要.db文件。如果资源管理器正在运行,它将在下次关闭时(例如注销,关闭或重新启动时)简单地写出当前(损坏的)图标。

评论


太棒了,它适用于每个Windows图标,甚至包括配置图标。其他方法仅重置文件和文件夹中的图标

– mikl
16 Mar 16 '16 at 15:04

我最近注意到的是,IconCache.db通常不一定存在,但是如上所述重新启动explorer.exe也可以解决该问题。

–anre
17年2月3日在18:23

这个答案值得所有支持和认可。

–micsthepick
18年7月5日在23:03

#3 楼


以管理员权限打开命令控制台
taskkill /IM explorer.exe /F
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
通过任务管理器启动explorer.exe



评论


为我工作,Win 8.1

– Spike0xff
17年6月20日在21:00

这与Win 10 Home 1909一起为我工作,而被接受的答案却没有。

–蓝色
20年6月6日在17:31

关闭命令控制台后,它停止工作。图标再次消失。再次尝试,找不到IconCache.db,更多图标消失了。

–蓝色
20 Jun 6'17:35



对于那些未以管理员身份运行Win10的用户,请注意...这些说明将删除您的管理员用户(而非标准用户)的图标。

– DAG
20/09/14 '18:31

#4 楼

创建一个.bat文件,并将以下行粘贴到其中,然后运行它。

taskkill /f /im explorer.exe
cd /d %userprofile%\AppData\Local
del IconCache.db /a
start explorer.exe


评论


这很酷。在Win8.1中可以轻松快速地运行。通过任务栏CMD图标中的“ QuickEdit”和“以管理员身份运行”设置,我只需在上面复制文本,然后单击CMD图标就可以创建bat文件。键入copy con clearcache.bat,然后按Enter,然后右键单击以将其粘贴。再按一次Enter,然后按Ctrl-Z完成创建文件的工作。然后,我输入clearcache来运行它。窗口闪烁,所有图标恢复固定。整个修复过程总共花费了30秒。谢谢。优秀的答案。

– SDsolar
17年12月1日23:17



#5 楼

有一种干净的方法可以关闭显示任务栏和桌面图标的Explorer.exe实例。

您必须弹出经典的Shutdown对话框窗口。我发现完成此操作的唯一常见方法是:


让至少一个像素的桌面背景没有重叠的Windows,然后单击它以专注于桌面本身(图标)。
按Alt + F4键盘快捷键:将显示经典的“关闭”对话框。
现在,按住CTRL + ALT + SHIFT并单击Cancel


评论


为什么这样做? CTRL + ALT + SHIFT单击“取消”有什么作用?

–迪恩·米汉(Dean Meehan)
2015年9月2日,15:36

另外:打开Windows 7开始菜单,按住Ctrl-Shift并右键单击“关机/注销/重新启动”按钮上方的空白区域(以默认配置为准)。出现一个菜单,其中有“退出浏览器”选项。单击它,资源管理器终止。

– Fran
2015年11月12日15:38

如果您使用Windows 7 startmenu技巧,请务必先关闭所有文件资源管理器窗口,这一点很重要!然后,您可以从Windows 7开始菜单中退出资源管理器。首先打开命令提示符。下一步,单击开始菜单,按住Ctrl + Shift,然后在“关机”按钮上方右键单击以显示“退出资源管理器”子菜单选项,然后单击它。在命令提示符下,键入CD / d%userprofile%\ AppData \ Local,然后键入del IconCache.db / a,最后键入Explorer。

– Arvo Bowen
16-4-5在23:26



要恢复您的开始菜单,请依次按ctrl + alt + del和file:新任务,然后输入explorer.exe。

– jaggedsoft
16年7月28日在21:05

按Win并将其释放。然后两次Alt + F4。这种方式速度更快,您无需查看桌面的一部分即可打开经典的关机菜单。

– cdlvcdlv
18 Mar 5 '18在10:22



#6 楼

如果不想制作.bat,请复制后面的行,按Win + R,粘贴并按Enter。

cmd /c taskkill /f /im explorer.exe & del /a %userprofile%\AppData\Local\IconCache.db & start explorer


也可以将其粘贴到资源管理器窗口的地址栏;当然,在命令行窗口中(然后您不需要cmd /c),但是如果您再次需要它,您将没有可以轻松重复的行。

CAVEAT:

不要在提升的提示符下运行此行,除非您确定自己是系统中的唯一用户,否则将在所有打开的会话中杀死资源管理器。因此,请不要在“运行”对话框中按Shift + Ctrl + Enter。

顺便说一句,我看不到需要反复看到的cd /d命令。似乎每个人都只是在复制/粘贴而不考虑命令的用途。

注意:

我使用&而不是&&,以防万一其中一个命令失败,以确保资源管理器重新启动。

#7 楼

Elmo建议的ie4uinit.exe是一个不错的选择,因为它已经可以在每个系统上使用。我遇到了麻烦,有时无法在我拥有的复杂批处理文件中刷新。 Nircmd是为我工作的一个很好的选择。

这是我使用的有效命令:nircmd shellrefresh

#8 楼

如果需要完整的刷新图标缓存,请转到Windows资源管理器的地址栏,然后键入“ C:\ Users *用户名* \ AppData \ Local”,然后删除IconCache.db。

**注意: **这可能是隐藏文件。因此,我建议在“文件夹”选项中打开“显示隐藏文件”。

评论


请仔细阅读问题。您的答案没有回答原始问题。

–DavidPostill♦
16年4月4日在7:17

#9 楼

尽管这不是用户的答案,但只需调用

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);


即可做到这一点[1]。可能有人会创建一个实用程序来做到这一点;当前,使用7-zip并尝试修改文件关联(针对所有用户;不提升权限;这将失败并表明操作失败)调用通知并重建图标缓存。

看到了对已接受答案的注释,其中讨论了呼叫,并提到了用于此目的的工具:https://github.com/crazy-max/IconsRefresh。

[1] https:/ /docs.microsoft.com/zh-CN/windows/desktop/api/shlobj_core/nf-shlobj_core-shchangenotify

#10 楼

不是很漂亮但是很有效:

C:> tskill Explorer

评论


这还不够。您还必须删除图标缓存数据库。无论如何,其他答案已经涵盖了杀死资源管理器。

–DavidPostill♦
16-11-27在9:25