« 履歴のすべてをインターネットショートカットに変換する。(その2) | トップページ | 「このページの検索」を代替、拡張するブックマークレット »

2011年9月24日 (土)

履歴のすべてをインターネットショートカットに変換する。(その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カラムと最終表示日カラムを表示すれば、履歴フォルダと同等になります。

« 履歴のすべてをインターネットショートカットに変換する。(その2) | トップページ | 「このページの検索」を代替、拡張するブックマークレット »