从书签HTML文件创建多个Windows URL快捷方式

时间:2012-08-20 19:37:12

标签: html windows google-chrome vbscript bookmarks

我在Google Chrome中拥有大量书签。我想将它们全部转移到一个Windows文件夹,以便每个书签都是网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样)。我还想保留书签的名称和图标。

我搜索了一种实现目标的方法,但我找到的只是在Chrome中手动手动 Create application shortcuts,或者手动拖动&从Chrome书签管理器中的书签导出的HTML文件中删除链接。

由于没有简单的解决方案(AFAIK),我想到了以另一种方式实现它。

基本上,我所拥有的是一个名为bookmarks.html的HTML文件(由Export bookmarks to HTML fileOrganize菜单中的Bookmark Manager功能创建。这是一个很长的列表链接(<a> s) - 我有超过250个书签。

我可以轻松地从文件中提取我需要的数据,可能是使用XML Parser,虽然它甚至可以使用正则表达式,因为结构是已知的并且在整个文件中是相同的:

...
<DT><A HREF="http://data.stackexchange.com/" ADD_DATE="1342120101" ICON="data:image/png;base64,iVBORw0......">Stack Exchange</A>
<DT><A HREF="http://www.istockphoto.com/" ADD_DATE="1285715116" ICON="data:image/png;base64,iVBORw0.......">Web Design</A>
<DT><A HREF="http://icons.mysitemyway.com/" ADD_DATE="1287435657" ICON="data:image/png;base64,iVBORw0........">Ico.etc</A>
<DT><A HREF="http://www.shutterstock.com/" ADD_DATE="1285715294" ICON="data:image/png;base64,iVBORw0.....">Shutterstock</A>
...

问题是我不知道如何创建一个可以获取数据的脚本 - 即URL,图标(在base64中)和名称 - 并使用该数据制作Windows URL快捷方式。我知道很少有VB脚本可以创建自定义快捷方式,但不能同时创建多个(大约300个)快捷方式。

2 个答案:

答案 0 :(得分:4)

嗯,结合一个有用的工具,只需要定期进行操作。我想必须有可能从chrome获得你的源代码,无论如何这里是一个完成你要求的脚本。

Const ForReading = 1, ForWriting = 2, ForAppending = 8, CreateIfNeeded = true
outpath = "g:\script\shortcut\url2\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
bookmarkfile = "bookmarks.html"
Set bookmarks = objFSO.OpenTextFile(bookmarkfile, ForReading)
Set regEx = New RegExp
regEx.Global = True
Set regEx2 = New RegExp
regEx2.Global = True
regEx2.Pattern = "[^a-zA-Z0-9-_.]"

regEx.Pattern = "<DT><A HREF=""(.*)"" ADD_DATE.*>(.*)</A>"
do until bookmarks.AtEndOfStream
  line = bookmarks.readline()
  if regEx.test(line) then
    shortcut = regEx.Replace(line,"$1")
    filename = trim(regEx.Replace(line,"$2"))
    filename = Regex2.Replace(filename, "_")
    filename = outpath & left(filename, 80) & ".url"
    wscript.echo filename
    'the following skips invalid filenames, you should add a routine to filter out invalid filename characters in your codeset
    on error resume next
    Set objFile = objFSO.OpenTextFile(filename, ForWriting, CreateIfNeeded)
    if err.number <> 0 then
      wscript.echo err.description
    end if
    objFile.write "[InternetShortcut]" & vbcrlf & "URL=" & shortcut
    objFile.close
  end if
loop

答案 1 :(得分:-1)

- 这非常有效 -

我将CHROME BOOKMARKS(也是我的GOOGLE BOOKMARKS)导出为单个.html文件。这可以通过书签管理器的ORGANIZE |在Chrome中完成出口下拉列表。 然后我打开了我的USER \ Favorites文件夹。我没有使用IE,因此它拥有IE附带的所有默认链接。我创建了一个名为CHROME BOOKMARKS的新文件夹。 我打开IE浏览器,点击了星形的FAVORITES按钮。我将ADD TO FAVORITES菜单拉下来并选择了IMPORT AND EXPORT。 这启动了一个导入向导。我告诉它我正在导入收藏夹,并将其导入Chrome导出的.html文件(#1),并告诉它导入我创建的CHROME BOOKMARKS文件夹(#2)。

这为我在Chrome中创建的每个书签创建了一个.url文件,其中包括BOOKMARKS BAR和OTHER BOOKMARKS。

我测试并确认通过双击或拖放在Chrome中启动.URL文件。

- 这个答案来自您在超级用户的问题 -