batch-file - 在不关闭 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
这会杀死资源管理器(在我的情况下并不理想)如果文件夹不在桌面上,这些都不起作用(即使您拖动桌面上文件夹内的文件夹也不起作用)
解决方案
所以我找到了
文件夹本身需要是只读的并且系统
attrib +R +S %1
一分钟后刷新会显示变化
推荐阅读
- asp.net-mvc-4 - 如何将 asp.net web 项目中现有的 Masterpage.Master 用于另一个 MVC4 _layout.cshtml 项目?
- python - Cloud Functions 中出现未知错误
- c# - 如何在不操纵 IoT 中心的连接字符串的情况下从后端服务配置我的设备的双重所需属性?
- listview - Xamarin 在列表视图中形成列表视图,并在子列表中对每个项目执行操作
- c# - C# 当我只读取而不更改队列时,我应该使用锁定语句吗?
- tensorflow2.0 - GPflow 2.0 是否支持将先验放在 GP 的(超)参数上?
- windows - 如何在批处理文件中正确使用 cd 命令?
- jenkins - 如何知道是谁远程触发了 Jenkins 的工作?
- css - Bootstrap 网格系统区分 2 种屏幕尺寸
- package - 如何在 R 版本 4.0.0 中安装 mixOmics 包?