gpt4 book ai didi

windows - Wscript批量编辑多个文件夹的desktop.ini

转载 作者:可可西里 更新时间:2023-11-01 09:28:36 25 4
gpt4 key购买 nike

我想创建一个批处理 Windows 脚本文件来定义文件夹的图标位置,在文件夹 desktop.ini 中

基本上,我的媒体驱动器中有 400 多个视频。每个都有一个与文件夹同名的图标文件,例如:

E:\Movies\Movie (2010) --> 文件夹名称E:\Movies\Movie (2010).ico --> 图标文件名

最初我只是右击每个文件夹并自定义图标,但最近我更换了 PC 并将 HDD 连接到新 PC 中,所有文件夹图标都变为默认图标。如果有可能的解决方案,我将不胜感激。

PS 我上次进行任何形式的编码是在 MS-DOS 批处理文件时代 :)

最佳答案

将其放入 vbs 文件中并在 cmd 中运行,参数是文件夹所在的文件夹

EditDesktopIni(Wscript.Arguments(0))

Sub EditDesktopIni(foldpath)
Dim fso, inifile, icondata, file, fold, subfold, item
Const ForReading = 1, ForWriting = 2
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set fold = fso.GetFolder(foldpath)
Set subfold = fold.SubFolders
For Each item In subfold
If (fso.FileExists(foldpath + "\" + item.Name + "\desktop.ini")) Then 'If desktop.ini exists, delete it
fso.DeleteFile foldpath + "\" + item.Name + "\desktop.ini", True
End If
Set file = fso.OpenTextFile(foldpath + "\" + item.Name + "\desktop.ini", ForWriting, True, TristateUseDefault)

file.WriteLine "[.ShellClassInfo]"
file.WriteLine "IconResource=" & foldpath & "\" & item.name & ".ico" & ",0"
file.WriteLine "[ViewState]"
file.WriteLine "Mode="
file.WriteLine "Vid="
file.WriteLine "FolderType=Generic"
file.WriteLine ""

fso.GetFile(foldpath + "\" + item.Name + "\desktop.ini").Attributes = 6
Next
End Sub

注意事项:

  1. 我从 Windows 7 com 的测试文件夹中获取了 desktop.ini 文件中的文本。我不确定它是否适用于其他版本的 Windows。
  2. 我已经测试了代码,但图标只会在一段时间和一些刷新后更新

编辑:这个可以立即运行(并且代码更好):

EditDesktopIni(Wscript.Arguments(0))

Sub EditDesktopIni(foldpath)
Dim fso, inifile, icondata, file, fold, subfold, item, subfoldpath
Const ForReading = 1, ForWriting = 2
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set fold = fso.GetFolder(foldpath)
Set subfold = fold.SubFolders
For Each item In subfold
inifile = foldpath + "\" + item.Name + "\desktop.ini"
subfoldpath = foldpath & "\" & item.name
If (fso.FileExists(inifile)) Then 'If desktop.ini exists, delete it
fso.DeleteFile inifile, True
End If
Set file = fso.OpenTextFile(inifile, ForWriting, True, TristateUseDefault)

file.WriteLine "[.ShellClassInfo]"
file.WriteLine "IconResource=" & subfoldpath & ".ico" & ",0"
file.WriteLine "[ViewState]"
file.WriteLine "Mode="
file.WriteLine "Vid="
file.WriteLine "FolderType=Generic"
file.WriteLine ""

fso.GetFile(inifile).Attributes = 6
item.Attributes = 0
item.Attributes = 4 'Set the folder to system to refresh the icon
Next
End Sub

关于windows - Wscript批量编辑多个文件夹的desktop.ini,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com