前几天,我想打开我之前创建的一个项目时,看到和它同级的另外几个项目却想不起当初为了啥才创建的,好吧,我这记性看来只能记住周边有啥好吃的了。为了不再忘记是为了什么目的而创建的,而且最近也学了vbs的一些操作文件的用法,所以就想到能不能给文件夹添加备注,说干就干,然后经过查阅,反复试验,最终我站在巨人们的肩膀上写了个稍微简单的脚本,亲测有效。
效果展示:
效果展示
接下来就是步骤:
1.创建一个文本文档,修改后缀名为vbs,并另存为ANSI。
修改后缀名
修改编码格式
2.将以下代码复制到文本里,保存即可。
Dim wsh,fso, curFile
Dim content1, note, content2, ext, baseName, newName, content
Set wsh = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set target = Wscript.arguments
content1 = "[.ShellClassInfo]" & vbCrLf
content2 = vbCrLf & "IconResource=C:\WINDOWS\System32\SHELL32.dll,4" & vbCrLf & "[ViewState]" & vbCrLf & "Mode=" & vbCrLf & "Vid=" & vbCrLf & "FolderType=Generic"
if target.Count then
if fso.fileexists(target(0) & "\desktop.ini") then
dim isDelete
isDelete = msgbox("已有备注,是否删除备注", vbYesNoCancel)
select case isDelete
case vbYes
DeleteFile target(0) & "\desktop.ini"
msgbox "删除成功"
case vbNo
note = inputbox("请输入备注内容", "备注内容", "内容不可为空")
if note <> "" then
content = content1 & "InfoTip=" & note & content2
DeleteFile target(0) & "\desktop.ini"
WriteFile target(0) & "\desktop.txt", content
ext = fso.getextensionname(target(0) & "\desktop.txt")
if ext = "txt" then
baseName = fso.getbasename(target(0) & "\desktop.txt")
newName = baseName & "." & "ini"
set curFile = fso.getfile(target(0) & "\desktop.txt")
curFile.name = newName
msgbox "备注设置成功,请刷新文件夹"
end if
else
msgbox "备注内容为空"
end if
case vbCancel
end select
else
note = inputbox("请输入备注内容", "备注内容", "内容不可为空")
if note <> "" then
content = content1 & "InfoTip=" & note & content2
WriteFile target(0) & "\desktop.txt", content
ext = fso.getextensionname(target(0) & "\desktop.txt")
if ext = "txt" then
baseName = fso.getbasename(target(0) & "\desktop.txt")
newName = baseName & "." & "ini"
set curFile = fso.getfile(target(0) & "\desktop.txt")
curFile.name = newName
msgbox "备注设置成功,请刷新文件夹"
end if
else
msgbox "取消备注"
end if
end if
wscript.quit
end if
'写入文件
sub WriteFile(txtName, content)
if txtName <> "" then
dim fs, txt
Set fs = CreateObject("Scripting.FileSystemObject")
Set txt = fs.CreateTextFile(txtName, true)
txt.Write content
txt.close
Set fs = nothing
end if
end sub
'删除文件
sub DeleteFile(txtName)
if txtName <> "" then
dim fs, txt
Set fs = CreateObject("Scripting.FileSystemObject")
if (fs.fileexists(txtName)) Then
fs.deleteFile txtName
end if
Set fs = nothing
end if
end sub
3.然后拖动想要操作的文件夹到这个vbs文件上就能实现添加备注和删除备注了。以下视频实现了文件夹的添加备注和彻底删除备注的操作,有兴趣的可以跟着视频操作一下。
4.接下来简单说下具体的原理和一些操作的意义。
首先,原理的话,要想给文件夹添加备注,首先需要文件夹包含一个名为desktop.ini的隐藏文件,要想看到它,就需要点击查看里的选项按钮,然后点击文件夹选项的查看,找到“隐藏受保护的操作系统文件(推荐)”,如果显示打勾状态,就取消它的勾选,然后就能在有备注的文件夹里看到这个隐藏文件了。而上面视频里的操作就是为了让文件夹生成这个隐藏文件,因为新建的文件夹默认是没这个隐藏文件的。右键点击编辑就能看到里面的内容,InfoTip后面的就是我们自定义的备注,IconResource后面的是系统自带的可以选择的图标。再后面的我就没研究试验过了,如果有大佬看到的话希望能不吝赐教。
然后,操作的话,视频里可以看到我每次添加备注或者删除备注的时候,都点了一下文件夹属性里的自定义的确定按钮,原因是为了让文件夹立刻刷新一下,不然等文件夹自身刷新的话会需要比较久的时间,不过也有可能你刚改完,它就刷新了。那么为什么是自定义里的确定就有效呢,原因是自定义里把图标换了的话也是会生成desktop.ini的隐藏文件,但我们又不希望我们已经生成的被覆盖,所以点下确定就能让文件夹刷新一下了,我也是试出来的0.0之前我是每次都是通过改图标来实现刷新的。。。好鸡儿累。