

作者 | 富妈 图 | Internet 全文共 1493 字 阅读约需 4 分钟
在 Windows 系统,可以通过修改图标使文件夹更容易区分。可是如果需要美化的文件夹太多,一个个设置就显得很费力,而且移动文件夹或者重装系统后,图标也容易失效。
这是一个很常见的问题,但网上相关的资料却比较少,很多小伙伴可能在搜索无果后放弃文件夹美化。今天让我们彻底解决这个问题吧。
/ / /
文件夹图标工作原理
如果想要让文件夹的图标永不消失,需要先了解其工作原理。当然,你不感兴趣的话可以直接跳到文章末尾直接获取工具即可!
其实,Windows 系统的文件夹内都有一个叫做desktop.ini 的系统隐藏文件,它控制着文件夹的图标、备注、背景等属性。一般打开显示系统隐藏文件的相关选项就能看到它。

在 desktop.ini 文件中,控制文件夹图标的代码如下:
[.ShellClassInfo]
IconResource=D:\abcd\tf2713.ico,0
其中tf2713.ico就是我们设置的图标文件,它可以存在系统任意位置。修改IconResource指定图标位置,就可以更换文件夹图标了,很简单是不是!
其实,这样修改是无法永久有效的,网上搜索到的资料一般说修改desktop.ini文件就行了,但实际测试中经常失效,比如图标直接没改变,或者移动位置后图标失效。
经过测试,我发现要永久修改文件夹图标需要满足以下条件:
1.desktop.ini 文件和对应的图标都放在要修改的文件夹内
2.IconResource对应的路径需要是相对路径
3. 文件夹需要具有「只读」属性
/ / /
文件夹图标修改方法
--------------------------
1.常规修改法
系统允许用户通过「右键文件夹 → 属性 → 自定义→更改图标 → 选择图标 → 确定」的方式修改图标。这方法人人都会,不过文件夹移动后图标易失效。要想用这个方法永久修改图标,还得手动在desktop.ini中把图标路径修改为绝对路径才行。
例如文件夹 D: ABC包含 abc. ico图标和desktop.in i文件。
IconResource=D:ABC\abc.ico(绝对路径)
这样移动文件夹后,IconResource的路径就失效了,所以需要改为
IconResource=abc.ico (相对路径)
这个方法显然很繁琐。
2.软件修改法
市面上有很多软件也可以永久修改图标,比如Dr. Folder,它们可以帮我们自动完成上述工作。
比如我们要设置多个文件夹的图标,一般得先新建多个文件夹,然后对各个文件夹重命名,再通过软件设置文件夹对应的图标。
不过这些软件设置多个文件夹为同一个图标倒还方便,但想要多个文件夹对应不同图标就麻烦了。虽然免去手动修改desktop.ini的麻烦,但软件设置步骤很费时,给个动图大家了解下。

每次设置一个文件夹都要点几次鼠标,且这类软件一般只能做到设置多个文件夹为同一图标。
3.我的方法
首先分析下我们的最终目标是能让不同的文件夹永久设置成不同图标(复杂情况都实现了,多文件夹设置同一个图标当然也做到了),操作步骤还得尽量地少,最好是一键完成。以下是分析结果:

为实现优化的方法使用了批处理;处理步骤大致为:
1.生成和图标同名空文件夹
2.移动图标到同名文件夹
3.设置desktop.ini的图标为相对路径
4.修改文件夹为[只读] 属性
批处理核心代码如下图

(完整代码还有清理图标缓存等步骤,就不细谈了)
这样,我们只用事先把图标修改为需要美化的文件夹名称,然后启动批处理,就一键生成不同图标的文件夹了,这里也放动图展示下,可以和上面的软件方法对比效率。

(注意后缀为.ico的文件瞬间变为文件夹,文件夹没有后缀)
其实,文件夹除了可以修改图标,还能修改很多有趣的属性。有空我再详细介绍下。
-------------------------
批量更改文件夹图标.bat
www.lanzous.com/ia2rfhg
-------------------------
注意:要把批处理和改好名的图标文件放同一个文件夹内!
(觉得有用可以把这篇文章分享给你的朋友,也许 他\她 正需要呢!)
- END -
正文配图 | Internet
作者 | 富妈
2024年1月29日,直接补充源码,复制到记事本后另存为bat文件使用:
@Echo off & Chcp 936 & Color 0b & MODE con: COLS=60 LINES=12>nul
@Title tf2713 批量更改文件夹图标工具!
::----------------------------------------------------------------
echo.
echo *************************************************
echo * *
echo * 1.处理后会生成和图标同名的美化文件夹 *
echo * *
echo * 2.请把图标和本批处理放在同一个目录下 *
echo * *
echo * 3.按任意键或等待5秒即可开始 !by tf2713 *
echo * *
echo *************************************************
echo.
::----------------------------------------------------------------
@timeout /t 5 >nul
::----------------------------------------------------------------
for /f "tokens=*" %%i in ('dir /b /a-d *.ico') do (
md "%%~ni">nul
ren "%%i" "&M&m-gb5l-SgSN-%%i"
move "&M&m-gb5l-SgSN-%%i" "%%~ni\">nul
(echo [.ShellClassInfo]
echo IconResource="&M&m-gb5l-SgSN-%%i",0
)>"%%~ni\desktop.ini"
attrib +s +h "%%~ni\desktop.ini"
attrib +s +h "%%~ni\&M&m-gb5l-SgSN-%%i"
attrib +r /s /d "%%~ni"
)
::----------------------------------------------------------------
echo.
echo.
echo 若文件夹图标修改成功,请按任意键关闭程序
echo.
set /p a=若文件夹图标无变化,输入 1 刷新图标缓存:
echo.
for %%i in (%a%) do (
if %%i==1 call :aa
)
echo.
exit
:aa
taskkill /f /im explorer.exe
attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"
del /f "%userprofile%\AppData\Local\IconCache.db"
attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream
start explorer