windows11 文件夹备注
前言
由于多年前被windows的中文路径坑过,所以现在d盘所有文件夹都是英文,这就导致找起文件夹来特别费劲,所以想给文件夹加个备注的字段,用中文来备注。
打开备注字段
进入所有需要添加备注的文件夹的父文件夹(比如我这里的这些游戏文件夹)
右键红色框的任意区域,选择其他
在选择详细信息的选框中,将备注勾选上,点击确定
这时候可以看到备注字段已经出现了
文件夹配置文件
网上找了一下发现文件夹有一个配置文件desktop.ini,在这里面可以修改文件夹的备注、tag等等。
使desktop.ini可见
点击资源管理器上部的…按钮,打开选项
在打开的文件夹选项窗口中,点击查看,在高级设置中找到隐藏受保护的操作系统文件(推荐),将其取消勾选
在弹出来的警示窗口内,点击是
点击应用
编辑desktop.ini
在本案例中,desktop.ini需要写入以下内容:
[.ShellClassInfo]
InfoTip=我是备注文本
理论上只需要把该desktop.ini文件放在需要备注的文件夹中就可以了,但是在实际操作过程中会遇到很多问题:
- desktop.ini写好之后不显示备注
- 备注乱码
问题1:desktop.ini写好之后不显示备注
这可能是windows11 23H2的bug(至少我自己是这么觉得的),将desktop.ini配置好之后不显示备注是因为没有切换一下文件夹的图标(很奇葩,但事实就是切换一下之后备注马上就出现了)
右键已经写好desktop.ini的文件夹,打开属性
点击自定义,点击更换图标
随便点击一个图标,点击确定
然后点击应用
这时候可以看到备注已经出现,但是呈现乱码状态
问题2:备注乱码
这是由于desktop.ini编码不匹配导致的,回到test文件夹中查看我们先前编写的desktop.ini文件
右键在记事本中编辑
可以看到这个.ini文件使用的是UTF-8的编码格式,我们需要ANSI编码格式的desktop.ini文件
这个莫名其妙出现的IconResource是我们先前修改文件夹图标自动生成的
点击文件,选择另存为
编码选择ANSI,点击保存
点击是
可以看到desktop.ini已经变成了ANSI编码
再次操作一下更换文件夹图标(上文 问题1:desktop.ini写好之后不显示备注),可以看到备注已经正确出现
整个文件夹设置备注的原理已经梳理完毕,接下来写脚本
脚本
新建一个.txt文件,在里面写入代码,保存之后改为.bat后缀
完整脚本如下:
@echo off
chcp 936 > nul
title file remarks
echo.&echo.
set /p filePath=input file path or drop file into this window:
echo.&echo.
set /p fileRemark=input remarks:
if exist %filePath%\desktop.ini (
attrib %filePath%\desktop.ini -s -h
del %filePath%\desktop.ini
)
echo [.ShellClassInfo]>temp_ini.txt
echo InfoTip=%fileRemark%>>temp_ini.txt
powershell -Command "Get-Content temp_ini.txt | Out-File -FilePath '%filePath%\temp.ini' -Encoding default"
cd /d "%filePath%"
if exist temp.ini (
rename temp.ini desktop.ini
)
if exist desktop.ini (
echo IconResource=C:\WINDOWS\System32\SHELL32.dll,0>>desktop.ini
)
if exist desktop.ini (
powershell -Command "(Get-Content 'desktop.ini') -replace 'IconResource=C:\\WINDOWS\\System32\\SHELL32.dll,0', 'IconResource=C:\\WINDOWS\\System32\\SHELL32.dll,4' | Set-Content -Encoding default 'desktop.ini'"
)
if exist desktop.ini (
attrib %filePath%\desktop.ini +h +s
attrib %filePath% +s
)
echo complete
脚本解释
检查要添加备注的文件夹里有没有desktop.ini文件
if exist %filePath%\desktop.ini (
attrib %filePath%\desktop.ini -s -h
del %filePath%\desktop.ini
)
将上文提到的desktop.ini所需内容写进.txt文件中
echo [.ShellClassInfo]>temp_ini.txt
echo InfoTip=%fileRemark%>>temp_ini.txt
利用powershell将.txt中的代码另存为.ini文件,且用默认编码(windows默认一般为ANSI)
powershell -Command "Get-Content temp_ini.txt | Out-File -FilePath '%filePath%\temp.ini' -Encoding default"
把前面存好的.ini文件改名成desktop.ini(这是因为我直接写到desktop.ini老是出问题,才出此下策)
cd /d "%filePath%"
if exist temp.ini (
rename temp.ini desktop.ini
)
如果存在desktop.ini就修改一下文件夹图标,然后再改回来
if exist desktop.ini (
echo IconResource=C:\WINDOWS\System32\SHELL32.dll,0>>desktop.ini
)
if exist desktop.ini (
powershell -Command "(Get-Content 'desktop.ini') -replace 'IconResource=C:\\WINDOWS\\System32\\SHELL32.dll,0', 'IconResource=C:\\WINDOWS\\System32\\SHELL32.dll,4' | Set-Content -Encoding default 'desktop.ini'"
)
测试脚本
运行上文的.bat脚本,右键复制文件夹路径,右键粘贴到cmd中
输入备注信息,回车
可以看到已经备注成功
上图中的remarks.config.bat就是脚本文件,temp_ini.txt是生成的.txt文件,无关紧要的
隐藏受保护的操作系统文件
后记
其实还有一种方法写成.ps1文件,写到注册表中,只需右键文件夹选择操作就可以用图形化界面添加备注,不过我还没研究明白,就先这样吧