6

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

我寻找一种方法来实现我的目标,但我能找到的只是在 Chrome 中手动,或者手动 链接从从 Chrome 书签管理器中的书签导出的 HTML 文件拖放到文件夹中。Create application shortcuts

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

基本上,我所拥有的是一个名为bookmarks.html(由.里面的菜单中的Export bookmarks to HTML file功能创建的 HTML 文件。它是一长串链接(s)-我有 250 多个书签。 OrganizeBookmark Manager<a>

我可以轻松地从文件中提取我需要的数据,可能使用 XML 解析器,尽管即使使用正则表达式也是可能的,因为结构是已知的并且在整个文件中是相同的:

...
<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 个)快捷方式。

4

2 回答 2

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
于 2012-08-20T21:12:37.520 回答
-1

- 这真的很有效 -

我将 CHROME BOOKMARKS(也对我的 GOOGLE BOOKMARKS 执行此操作)导出为单个 .html 文件。这可以在 Chrome 中通过书签管理器的 ORGANIZE | 完成。导出下拉菜单。然后我打开了我的 USER\Favorites 文件夹。我不使用 IE,所以它具有 IE 附带的所有默认链接。我创建了一个名为 CHROME BOOKMARKS 的新文件夹。我打开 IE 并单击星形 FAVORITES 按钮。我拉下添加到收藏夹菜单并选择导入和导出。这启动了一个导入向导。我告诉它我正在导入收藏夹,并将其定向到 Chrome 导出的 .html 文件(#1),并告诉它导入我创建的 CHROME BOOKMARKS 文件夹(#2)。

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

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

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

于 2016-06-17T09:32:32.410 回答