Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从书签HTML文件创建多个Windows URL快捷方式_Html_Windows_Google Chrome_Vbscript_Bookmarks - Fatal编程技术网

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

从书签HTML文件创建多个Windows URL快捷方式,html,windows,google-chrome,vbscript,bookmarks,Html,Windows,Google Chrome,Vbscript,Bookmarks,我在谷歌Chrome上有很多书签。我想将所有书签都转移到windows文件夹中,这样每个书签都将成为网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样)。我还想保留书签的名称和图标 我寻找了一种方法来实现我的目标,但我能找到的只是在Chrome中手动创建应用程序快捷方式,或者手动将从Chrome书签管理器中的书签导出的HTML文件中的链接拖放到文件夹中 由于没有简单的解决方案(AFAIK),我考虑用另一种方式实现它 基本上,我拥有的是一个名为bookmarks.HTML

我在谷歌Chrome上有很多书签。我想将所有书签都转移到windows文件夹中,这样每个书签都将成为网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样)。我还想保留书签的名称和图标

我寻找了一种方法来实现我的目标,但我能找到的只是在Chrome中手动
创建应用程序快捷方式
,或者手动将从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