首页 > 解决方案 > 在不关闭 explorer.exe 的情况下刷新图标缓存

问题描述

我写了这个小代码来设置文件夹图标:

@echo off
If [%1] == [] goto :eof
echo [.ShellClassInfo] > %1\Desktop.ini
echo IconFile=FolderIcon.ico >> %1\Desktop.ini
echo IconIndex=0 >> %1\Desktop.ini
for %%f in (%1\*.ico) do (
    if "%%~xf"==".ico" ren "%%f" "FolderIcon.ico" & attrib +h +s %1\"FolderIcon.ico"
)
attrib +S +H %1\desktop.ini

我试过了 :

Nircmd.exe sysrefresh
Nircmd.exe shellrefresh
ie4uinit.exe -ClearIconCache
ie4uinit.exe -show

但这些没有任何效果唯一有效的是

taskkill /fi "imagename eq explorer.exe" /f
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
START explorer.exe

这会杀死资源管理器(在我的情况下并不理想)如果文件夹不在桌面上,这些都不起作用(即使您拖动桌面上文件夹内的文件夹也不起作用)

标签: batch-file

解决方案


所以我找到了

文件夹本身需要是只读的并且系统

attrib +R +S %1

一分钟后刷新会显示变化


推荐阅读