履歴のすべてをインターネットショートカットに変換する。(その3)
履歴を「日付順に表示」風に
日付順フォルダ \ サイト順フォルダ \ 最終表示日 + タイトル
のインターネットショートカットに変換します。
HistoryByDate.vbs
Option Explicit
Dim fso
Dim Week
Dim WeekName
Dim Site
Dim SiteName
Dim FolderItem
Dim Url
Dim LastVisited
Dim Path
Dim Title
Dim Text
Dim RE
Set re=New RegExp
re.Pattern="[\x00-\x31\x7F-\xFF]"
re.Global=True
re.MultiLine=True
Set fso=CreateObject("Scripting.FileSystemObject")
With CreateObject("Shell.Application").NameSpace(34)
For Each Week In .Items
WeekName=.GetDetailsOf(Week,0)
If Not fso.FolderExists(WeekName) Then fso.CreateFolder WeekName
With Week.GetFolder
For Each Site In .Items
SiteName=WeekName & "\" & .GetDetailsOf(Site,0)
If Not fso.FolderExists(SiteName) Then fso.CreateFolder SiteName
With Site.GetFolder
For Each FolderItem In .Items
URL=.GetDetailsOf(FolderItem,0)
Title=.GetDetailsOf(FolderItem,1)
LastVisited=.GetDetailsOf(FolderItem,2)
Title=re.Replace(Title,"")
Text="[InternetShortcut]" & vbCrLf & _
"URL=" & Url & vbCrLf & _
"[{5CBF2787-48CF-4208-B90E-EE5E5D420294}]" & vbCrLf & _
"Prop23=64," & Replace(LastVisited," ",":") & ":00.000" & vbCrLf & _
"Prop21=31," & Title & vbCrLf
Title=Replace(Title,":","")
Title=Replace(Title,"\","")
Title=Replace(Title,"/","-")
Title=Replace(Title,"*","")
Title=Replace(Title,"?","")
Title=Replace(Title,"""","")
Title=Replace(Title,"<","")
Title=Replace(Title,">","")
Title=Replace(Title,"|","")
Title=Replace(Title,"&","")
Title=Replace(Title,".","_")
LastVisited=Replace(LastVisited,"/","-")
LastVisited=Replace(LastVisited,":","-")
Path=SiteName & "\" & LastVisited & " " & Title & ".url"
If fso.FileExists(Path) Then
Else
On Error Resume Next
fso.CreateTextFile(Left(Path,200),,True).Write Text
If Err Then
MsgBox Join(Array(Path,Escape(Path),Err.Description),vbCrLf)
WScript.Quit
End If
On Error GoTo 0
End If
Next
End With
Next
End With
Next
End With
カレントディレクトリに作成するので、作成先フォルダで実行するか、ショートカットを作って作業フォルダを指定して実行します。
説明カラム(タイトル)、URLカラムと最終表示日カラムを表示すれば、履歴フォルダと同等になります。