フォルダの「カスタマイズ」、「フォルダの種類」で
「このテンプレートをすべてのサブフォルダーに適用する」は使用禁止。
使うと、各フォルダのdesktop.iniのFolderType=が無効になる。
代わりに、カスタマイズ済の親フォルダをInherit.vbsにドロップする。
Path=WScript.Arguments.Item(0)
Set fso=CreateObject("Scripting.FileSystemObject")
Set Re=New RegExp
Re.Pattern="^foldertype=(\w+)$"
Re.IgnoreCase=True
Re.MultiLine=True
Set File=fso.OpenTextFile(Path & "\desktop.ini",1,0,-2)
Text=File.ReadAll
File.Close
Set Matches=Re.Execute(Text)
FolderType=Matches.Item(0).Value
Call SubFolders(fso.GetFolder(Path))
WScript.Quit
Sub SubFolders(Folder)
For Each SubFolder In Folder.SubFolders
Call Customize(SubFolder)
Next
End Sub
Sub Customize(Folder)
Path=Folder.Path & "\desktop.ini"
If fso.FileExists(Path) Then
Set File2=fso.GetFile(Path)
File2.Attributes=File2.Attributes And Not 6
Set File=fso.OpenTextFile(Path,1,0,-2)
Text=File.ReadAll
File.Close
Else
Text=""
End If
If Re.Test(Text) Then
Text=Re.Replace(Text,FolderType)
Else
Text="[ViewState]" & vbCrLf & FolderType & vbCrLf & Text
End If
Set File=fso.OpenTextFile(Path,2,True,0)
File.Write Text
File.Close
Set File2=fso.GetFile(Path)
File2.Attributes=File2.Attributes Or 6
Folder.Attributes=Folder.Attributes Or 1
End Sub