中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 07:51
48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]关于Firefox的收藏夹转成IE的收藏夹的问题
可打印版本  1,489 / 19
第1楼 honghunter 发表于 2008-01-12 11:13
中级用户 发帖 135 积分 321
[讨论]关于Firefox的收藏夹转成IE的收藏夹的问题
查了一点资料,现在已经知道如何获取两者的位置。

不过我现在的问题是:Firefox的收藏夹是一个html文件,是否可能不借助第三方工具来提取出其中的URL和网站名称。

(其实我最终希望实现的是两者的同步)


Firefox的收藏夹html文件中记录一个收藏的格式如下:(可能没有ICON和DD注释)

<DT><A HREF="http://www.dps4e.com/" ADD_DATE="1184227241" LAST_VISIT="1199512364" LAST_MODIFIED="1199458911" LAST_CHARSET="GB2312" ICON="data:image/x-icon;base64,AA...这里看起来是ICON的base64编码..." ID="rdf:#$x57xj">dps4e.com</A>
<DD>这里看起来是注释


获取Firefox的收藏夹文件位置:

获取IE的收藏夹目录位置:(借用本论坛某位大大的代码)


[ Last edited by honghunter on 2008-1-13 at 05:43 PM ]
第2楼 honghunter 发表于 2008-01-12 11:17
中级用户 发帖 135 积分 321
firefox的HTML文件片段:(可见其目录的标示方式)

其中蓝色的字需要提取出来作为目录的判断;
其中红色的字需要提取出来作为快捷方式的目标URL和名称。


<DT><H3 ADD_DATE="1161821881" LAST_MODIFIED="1199674483" ID="rdf:#$e43AY2">00-TMP</H3>
<DL><p>
<DT><A HREF="http://www-128.ibm.com/developerworks/cn/java/j-ap08016/" ADD_DATE="1167301343" LAST_VISIT="1199494442" LAST_MODIFIED="1199458910" ICON="data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAIAAAJhlAACAgAAAAACAAACAgACAAIAAgICAAMDAwAAA/wAA/wAAAP//AAAAAP8AAP//AP8A/wD///8AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiL/8v/yLy8vIi8i8i8vLy8iLyL/8i/y/yIvIvIvL/L/Iv/y//IvIi8iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//" LAST_CHARSET="UTF-8" ID="rdf:#$1PYj22">让开发自动化: 持续检查</A>
<DD>利用源代码分析工具,自动获得关于代码复杂性、重复程度、符合编码标准的程度,从而改进软件开发过程。
<DT><A HREF="http://forum.ubuntu.org.cn/index.php?sid=6c885f42cc736f815a552322ca5d9e56" ADD_DATE="1199494790" LAST_CHARSET="UTF-8" ID="rdf:#$VUikw1">Ubuntu中文 论坛 :: 首页</A>
<DT><A HREF="http://www.cn-dos.net/forum/index.php" ADD_DATE="1199494803" LAST_CHARSET="UTF-8" ID="rdf:#$WUikw1">中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛</A>
<DD>中国DOS联盟论坛 - 中国DOS联盟
<DT><A HREF="http://www.cnblogs.com/jobs/archive/2004/08/13/33065.aspx" ADD_DATE="1199506620" LAST_VISIT="1199670206" ICON="data:image/x-icon;base64,AAABAAEAEBD/AAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3NzcAOvOrwD+18MA////AIvLrwCP1OYA686wAJW28gDkyKkAiKnmANSumgD52s4A96ysAP+ioQDKpZUArntwAP+9YAD/2JYA6sSmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAAAAAAICAgICAgICAgICAQAAAAACAwQEBAQEBAQEAgEAAAAAAgMAAAQAAAAEBAAAAAAAAAIDAAUABgQEBAQAAQAAAAAHBwAEAAAAAAQIAAEAAAAACQIABAAEBAAKCgABAAAAAAAABAQEAAAAAAAAAAAAAAACAwQEBAQEBAQEAAEAAAAAAgMEBAQEBAQEBAsBAAAAAAIDBAQEBAQMDQ4PAQAAAAACAwQEBAQEEBAQEAAAAAAAAgMEBAQEBBAREgEAAAAAAAIDAwMDAwMQEgEAAAAAAAACAgICEwsPEAEAAAAAAAAAAAAAAAAAAAAAAAAAAPABAADgAQAA4AEAAEABAADAAQAAwAEAAMABAADAAQAA4AEAAOABAADgAQAA4AMAAOADAADgBwAA4A8AAP//AAA=" LAST_CHARSET="UTF-8" ID="rdf:#$XUikw1">测试开发驱动实践 - 温少的日志 - 网志园</A>
<DT><A HREF="http://www.cnblogs.com/unruledboy/archive/2004/08/13/33227.html" ADD_DATE="1199506643" LAST_VISIT="1199804081" LAST_CHARSET="UTF-8" ID="rdf:#$YUikw1">关于Peer Review、代码评审和测试驱动等 - 灵感之源 - 网志园</A>
</DL><p>
<DT><H3 ADD_DATE="1161821882" LAST_MODIFIED="1199459806" ID="rdf:#$B43AY2">01-办公</H3>
<DL><p>
</DL><p>
<DT><H3 ADD_DATE="1161821882" LAST_MODIFIED="1199458910" ID="rdf:#$o53AY2">02-常用</H3>
<DL><p>
<DT><A HREF=

[ Last edited by honghunter on 2008-1-13 at 05:46 PM ]
第3楼 honghunter 发表于 2008-01-12 11:36
中级用户 发帖 135 积分 321
遇到一个新问题,ff的html文件是utf8的,想要转成GBK的时候,使用如下格式调用无奈何版主的“GBK & UTF8 编码互转脚本 (CMD+GAWK)"生成的文件好像还是UTF8的。

call gbk2utf8.cmd /u /i bookmarks-2008-01-11.html >bookmarks.html


奈何版主的“GBK & UTF8 编码互转脚本 (CMD+GAWK)"取自:
http://www.cn-dos.net/forum/viewthread.php?tid=25205&fpage=1&highlight=UTF8
第4楼 honghunter 发表于 2008-01-12 11:39
中级用户 发帖 135 积分 321
看来使用第三方工具是避免不了,那么只有希望少使用几个了。
第5楼 honghunter 发表于 2008-01-12 22:40
中级用户 发帖 135 积分 321
自己顶一下,期待大侠们的意见和建议。
第6楼 honghunter 发表于 2008-01-13 17:07
中级用户 发帖 135 积分 321
自己顶一下,期待大侠们的意见和建议。
第7楼 lxmxn 发表于 2008-01-13 17:30
版主 发帖 4,938 积分 11,386
我觉得你可以用不同的颜色把需要提取的URL和名称标记一下,这样更方便别人思考,节省时间。
第8楼 honghunter 发表于 2008-01-13 17:42
中级用户 发帖 135 积分 321
好的,我这就弄一下.
第9楼 lxmxn 发表于 2008-01-13 19:16
版主 发帖 4,938 积分 11,386
@echo %bg% off & setlocal EnableDelayedExpansion

for /f "delims=<> tokens=1-5" %%a in ('findstr /i "<DT><H3*>.*</H3> <DT><A*>.*</A>" FireFox的HTML收藏夹文件') do (
if /i "%%e"=="/H3" (echo\&echo\-----&echo md %%d)
if /i "%%e"=="/A" (
(for /f "usebackq tokens=2" %%a in ('%%c') do (
set mystr=%%a
echo/!mystr:~5!
)) 2>nul
echo %%d
)
)
endlocal&pause


[ Last edited by lxmxn on 2008-1-13 at 07:18 PM ]
第10楼 honghunter 发表于 2008-01-13 23:34
中级用户 发帖 135 积分 321
lxmxn 版主太厉害啦,让我好好学习一下。
第11楼 honghunter 发表于 2008-01-14 10:07
中级用户 发帖 135 积分 321
lxmxn版主的这段脚本太强悍了,学到了,再次感谢。


除了3楼说的问题还没有找到解决方法外,我又遇到问题了,继续请教。

早上试验了一下,如果有二级目录的话,ff的那个收藏夹文件格式如下,9楼的代码也能解析出来。但是我的问题是,批处理中,是否能检查一个环境变量是由4个还是8个空格组成的哪?
(00-TMP那行前面有4个空格,sub_temp那行前面是8个空格。我还试验了一下,在sub_temp下面再加上三级目录的话,前面就是12个空格。)


<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1 LAST_MODIFIED="1200273255">Bookmarks</H1>

<DL><p>
<DT><H3 ADD_DATE="1161821881" LAST_MODIFIED="1200273262" ID="rdf:#$e43AY2">00-TMP</H3>
<DL><p>
<DT><A HREF="http://www.cn-dos.net/forum/index.php" ADD_DATE="1199494803" LAST_CHARSET="UTF-8" ID="rdf:#$WUikw1">中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛</A>
<DD>中国DOS联盟论坛 - 中国DOS联盟
<DT><H3 ADD_DATE="1200273240" LAST_MODIFIED="1200273262" ID="rdf:#$i.90z1">sub_temp</H3>
<DL><p>

<DT><A HREF="http://forum.ubuntu.org.cn/index.php?sid=6c885f42cc736f815a552322ca5d9e56" ADD_DATE="1199494790" LAST_CHARSET="UTF-8" ID="rdf:#$VUikw1">Ubuntu中文 论坛 :: 首页</A>
</DL><p>
</DL><p>
<DT><H3 ADD_DATE="1161821882" LAST_MODIFIED="1199459806" ID="rdf:#$B43AY2">01-办公</H3>
<DL><p>
</DL><p>
<DT><H3 ADD_DATE="1161821882" LAST_MODIFIED="1199458910" ID="rdf:#$o53AY2">02-常用</H3>
<DL><p>
第12楼 honghunter 发表于 2008-01-14 10:56
中级用户 发帖 135 积分 321
我尝试用循环来组合多个空格到一个环境变量中,不知道哪里错了,改来改去,还是不行。


@echo on & setlocal enabledelayedexpansion
set "temp_path= "
set "temp_space= 1"
for %%i in (1 2 3 4 5) do (
set "temp_spac1=%temp_space%"
set "temp_space= %temp_spac1%"
echo "temp_space=%temp_space%#"
if "#%temp_path%1"=="#%temp_space%" set "temp_path=%%i"
echo temp_path=%temp_path%0
)
第13楼 lxmxn 发表于 2008-01-14 18:03
版主 发帖 4,938 积分 11,386
to honghunter:
其实我9楼的脚本的for循环里面,%%a就是每行前面的空格,你可以用类似如下的语句来简单判断它里面的空格数:
if "#%%a#"=="# #" echo It has 4 spaces
if "#%%a#"=="# #" echo It has 8 spaces
类推。。

ps 最近要期末考试,没什么时间来回复兄的贴子,望见谅。
第14楼 honghunter 发表于 2008-01-14 18:10
中级用户 发帖 135 积分 321
谢谢 lxmxn 版主 的再次回复,我知道13楼这种做法,现在也就是这样判断的。

只是想尝试一下看能不能用循环来组合一个,这样就不用随着支持的目录深度而增加批处理的行数了。(因为13楼做法要为每个目录深度写一行判断,不过其实这个也无所谓,因为至少我自己是不会把收藏夹弄出超过3层的深度的,呵呵)



再次感谢 lxmxn 版主百忙之中给与帮助。
第15楼 lxmxn 发表于 2008-01-14 18:31
版主 发帖 4,938 积分 11,386
TO honghunter:
对于你说的深度,其实就是指%%a中缩进的长度吧?

因为这个%%a里面全部是空格,那么你可以用
echo/%%a|findstr /c:"^ *$" >nul && do_your_command
来判断并执行你需要执行的命令,解决问题最终还是一个思路的问题。
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023