中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何输出特殊字符,比如“>>”
作者:
标题: 如何输出特殊字符,比如“>>” 上一主题 | 下一主题
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『楼 主』:  如何输出特殊字符,比如“>>”

我的目的是在主批处理里面,动态产生子批处理文件。

最后子批处理文件中有一句应该是:

echo check-%%A-OK >>check_it.txt

我现在遇到的问题是,怎么在主批处理里面,输出这个含有特殊字符的句子。


发现:
echo(
echo aaa >> aaa.txt
) > bb.txt

会产生两个文件,aaa和bb,bb中不是我要的结果。

echo(echo aaa >> aaa.txt) > bb.txt
只产生bb,也不是我要的结果。

2007-4-24 10:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

^>^>

2007-4-24 10:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 3 楼』:  

我的本来的目的是,完成了部分检测只好,记录一下,下次就不重复检测了。


对于要进行几千(1000~5000)的检测的处理,想要将检测过的通过某种方式记录下来,期望电脑死机或者重启之后,能尽量少的检测曾经检测过的,继续检测还没检测过的部分,以此来缩短总的检测时间。
请问大家,有什么高效的办法吗?

2007-4-24 10:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

To honghunter:

兄可以将问题描述得更具体一些,方面大家的理解和及时解决你的问题。

2007-4-24 14:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lililulula
中级用户





积分 302
发帖 138
注册 2007-3-29
状态 离线
『第 5 楼』:  

如果楼主想要的是在check_it.txt中有检测某条记录成功信息,在b.txt中显示成功信息的日志信息的话,2条echo就可以了,用转意字"^"输出">"
echo check-%%A-OK>>check_it.txt
echo check-%%A-OK^>^>check_it.txt>b.txt

2007-4-24 22:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

应该是echo echo check-%%%%A-OK^>^>check_it.txt>b.txt吧?

2007-4-25 01:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 7 楼』:  

实际情况是这样,我用批处理来连接一组小工具和其他批处理。用来下载漫画,一部漫画常常有几千个图片文件。

因此往往难以一次下载完成。

因此我希望能对于已经完成的部分记录下来,重新运行的时候,可以跳过这些已经完成下载的。

然后我使用了一个可能有点奇怪的办法,将全部需要下载的图片,分别放在多个子批处理文件中,类似:

REM BATCH FILES: 0
call D:\dp_dev\comic.zpoo.com\ws\sub_get_img.bat  "http://comics.zpoo.com/0k00016/Vol_0001/001_IZwZsX.jpg" 0k00016  Vol_0001 001_IZwZsX.jpg
call D:\dp_dev\comic.zpoo.com\ws\sub_get_img.bat  "http://comics.zpoo.com/0k00016/Vol_0001/006_wb632L.jpg" 0k00016  Vol_0001 006_wb632L.jpg
call D:\dp_dev\comic.zpoo.com\ws\sub_get_img.bat  "http://comics.zpoo.com/0k00016/Vol_0001/011_2DOXG3.jpg" 0k00016  Vol_0001 011_2DOXG3.jpg
call D:\dp_dev\comic.zpoo.com\ws\sub_get_img.bat  "http://comics.zpoo.com/0k00016/Vol_0001/016_otQPi9.jpg" 0k00016  Vol_0001 016_otQPi9.jpg
。。。
然后在这个子批处理的最后,记录一个标志到文件中,表示这个部分已经完成了。
下次主批处理再启动的时候,就不运行这个子批处理文件了。

当主批处理中检测发现所有的子批处理文件都运行完成之后,就表示全部下载完成了。那么就可以清理全部临时文件,完成工作了。

2007-4-25 11:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  

感觉你这样弄复杂了。

你可以这样,把要下载的连接全部放在1.txt中,要下载的时候,直接读取1.txt文件下载,每下载一个,就记录这个连接到2.txt中,再下载的时候,根据1.txt和2.txt来下载剩下的部分。

或许你可以用curl或者wget来实现你的目的比较方便。

2007-4-25 13:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 9 楼』:  

我就是想要找到一个大批量处理的时候,记录中间过程的方式。
我说的大批量是只在电脑一次开机的时间段里面。
所以也可能只这样的极端情况:总共只要处理几十个,但是某次开机只开了半小时,半小时里面只处理了1、2个,但是还是记录下来,下次能继续。

对于纯粹下载,确实可以使用curl或者wget的相应功能,我现在用的wget,不多没有去研究那个功能。

可能是因为最近对于批处理非常干兴趣,所以想要通过批处理来解决这个问题。

2007-4-25 21:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 10 楼』:  

另外,我现在还有个问题,就是不知道是不是调用call的层次太深,或者次数太多。 批处理文件会傻掉,然后系统保存。所用批处理都不在工作。

2007-4-25 21:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  

如果不印象你操作的话,你可以将call换成start命令试试。

或者这样:
....................
call :download "url"
goto :eof

:download
start "" "D:\dp_dev\comic.zpoo.com\ws\sub_get_img.bat %1 "
echo %~1 >>record.txt
goto :eof

2007-4-26 06:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bshkl
新手上路





积分 8
发帖 3
注册 2007-1-7
状态 离线
『第 12 楼』:  

用 》代替

2007-4-26 09:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: