从书签HTML文件创建多个Windows URL快捷方式
我在谷歌Chrome上有很多书签。我想将所有书签都转移到windows文件夹中,这样每个书签都将成为网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样)。我还想保留书签的名称和图标 我寻找了一种方法来实现我的目标,但我能找到的只是在Chrome中手动从书签HTML文件创建多个Windows URL快捷方式,html,windows,google-chrome,vbscript,bookmarks,Html,Windows,Google Chrome,Vbscript,Bookmarks,我在谷歌Chrome上有很多书签。我想将所有书签都转移到windows文件夹中,这样每个书签都将成为网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样)。我还想保留书签的名称和图标 我寻找了一种方法来实现我的目标,但我能找到的只是在Chrome中手动创建应用程序快捷方式,或者手动将从Chrome书签管理器中的书签导出的HTML文件中的链接拖放到文件夹中 由于没有简单的解决方案(AFAIK),我考虑用另一种方式实现它 基本上,我拥有的是一个名为bookmarks.HTML
创建应用程序快捷方式
,或者手动将从Chrome书签管理器中的书签导出的HTML文件中的链接拖放到文件夹中
由于没有简单的解决方案(AFAIK),我考虑用另一种方式实现它
基本上,我拥有的是一个名为bookmarks.HTML
(由书签管理器中组织
菜单中的导出书签到HTML文件
功能创建)的HTML文件
...
问题是,我不知道如何创建一个脚本来获取数据,即URL、图标(在base64中)和名称,并使用这些数据创建Windows URL快捷方式。我知道很少有VB脚本可以创建自定义快捷方式,但不能创建多个(大约300个)立即使用快捷方式。嗯,再加上像“一切有用”这样的工具,只有你需要定期进行操作。我想一定可以从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
Const ForReading=1,forwrite=2,ForAppending=8,CreateIfNeeded=true
outpath=“g:\script\shortcut\url2\”
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
bookmarkfile=“bookmarks.html”
设置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=“”
直到bookmarks.AtEndOfStream
line=bookmarks.readline()
如果正则表达式测试(行),则
快捷方式=regEx.Replace(行“$1”)
filename=trim(regEx.Replace(行“$2”))
filename=Regex2.Replace(文件名“\”)
filename=outpath&left(filename,80)和“.url”
wscript.echo文件名
'以下跳过无效的文件名,您应该添加一个例程以过滤掉代码集中的无效文件名字符
出错时继续下一步
设置objFile=objFSO.OpenTextFile(文件名,用于写入,CreateIfNeeded)
如果错误号为0,则
wscript.echo err.description
如果结束
objFile.write“[InternetShortcut]”&vbcrlf&“URL=”快捷方式(&快捷方式)
objFile.close
如果结束
环
-这真的很有效-
我将CHROME书签(也将其导出到我的GOOGLE书签)作为一个.html文件。这可以通过书签管理器的ORGANIZE | EXPORT下拉列表在CHROME中完成。
然后我打开了我的USER\Favorites文件夹。我不使用IE,所以它有IE附带的所有默认链接。我创建了一个名为CHROME书签的新文件夹。
我打开IE,点击星形收藏夹按钮。我下拉添加到收藏夹菜单,选择导入和导出。
这启动了一个导入向导。我告诉它我正在导入收藏夹,并将其定向到Chrome导出的.html文件(#1),并告诉它导入到我创建的Chrome书签文件夹(#2)
这为我在Chrome中的每个书签创建了一个.url文件,其中包括书签栏和其他书签
我测试并确认通过双击或拖放在Chrome中启动.URL文件
-这个答案来自您在superuser上的问题-除了输出路径
之外,我还需要自定义什么?我在.vbs
文件中有脚本,我在bookmarks.html
文件所在的同一文件夹中运行它。是的,我得到800A0034 VBScript运行时错误@第13行字符3
t这是由于相对/非相对路径问题造成的,但我尝试了几个相对和非相对输出路径。我只尝试了您提供的4行,您应该添加一个清除文件名例程,以便删除与文件名冲突的所有字符(您肯定会在stackoverflow上找到)。添加“wscript.echo文件名”就在那一行之前,这样你就可以看到哪个名字出了问题。我清理了bookmarks.html
文件,脚本正在处理33/300个链接,但随后它停止了。我试图看看它停止的地方是否有什么不寻常的地方,但没有什么问题(即使我删除了导致问题的行,它也会在同一个位置停止。它只是在成功创建了33个快捷方式后停止。你知道这可能是什么原因吗?即使对于没有图标的链接,它也非常有效,正则表达式似乎很正确。即使我删除了第20-40行,它在创建了33个短的快捷方式后仍然会停止。)削减。我看不出有什么理由,我想你不会把结果放在roo之类的大硬盘上,如果你不想把你的书签文件寄给我,我会查出来的,同时你能接受答案吗?查看我的个人资料了解我的电子邮件地址,即使Chrome第一次发布时就把我吓跑了(0.2.149.27)已经足够永久性地切换到它了,它变得越来越糟糕,开发人员变得非常恼人和暴虐,所以我最近决定最终放弃它(我可能会选择Firefox)因此,我决定将我的Chrome书签导出到.url
文件中,与我多年来制作的IE和其他浏览器中的书签放在一起。第一步是用链接解码该文件,第二步是简单地检查该文件。你所需要的只是[InternetShortcut]
标题和URL
行。如果你想添加修改的
,计算校验和可能会很困难;花了我几个小时。很接近,但说明了如何操作。我修复了所有边缘案例,现在我的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