![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 07:54 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何输出特殊字符,比如“>>” |
| 可打印版本 885 / 11 |
| 第1楼 honghunter | 发表于 2007-04-24 10:16 |
| 中级用户 发帖 135 积分 321 | |
|
如何输出特殊字符,比如“>>” 我的目的是在主批处理里面,动态产生子批处理文件。
最后子批处理文件中有一句应该是: 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,也不是我要的结果。 |
|
| 第2楼 wudixin96 | 发表于 2007-04-24 10:20 |
| 银牌会员 发帖 931 积分 1,928 | |
|
^>^>
|
|
| 第3楼 honghunter | 发表于 2007-04-24 10:22 |
| 中级用户 发帖 135 积分 321 | |
|
我的本来的目的是,完成了部分检测只好,记录一下,下次就不重复检测了。
对于要进行几千(1000~5000)的检测的处理,想要将检测过的通过某种方式记录下来,期望电脑死机或者重启之后,能尽量少的检测曾经检测过的,继续检测还没检测过的部分,以此来缩短总的检测时间。 请问大家,有什么高效的办法吗? |
|
| 第4楼 lxmxn | 发表于 2007-04-24 14:26 |
| 版主 发帖 4,938 积分 11,386 | |
|
To honghunter:
兄可以将问题描述得更具体一些,方面大家的理解和及时解决你的问题。 |
|
| 第5楼 lililulula | 发表于 2007-04-24 22:47 |
| 中级用户 发帖 138 积分 302 | |
|
如果楼主想要的是在check_it.txt中有检测某条记录成功信息,在b.txt中显示成功信息的日志信息的话,2条echo就可以了,用转意字"^"输出">"
echo check-%%A-OK>>check_it.txt echo check-%%A-OK^>^>check_it.txt>b.txt |
|
| 第6楼 lxmxn | 发表于 2007-04-25 01:12 |
| 版主 发帖 4,938 积分 11,386 | |
|
应该是echo echo check-%%%%A-OK^>^>check_it.txt>b.txt吧?
|
|
| 第7楼 honghunter | 发表于 2007-04-25 11:18 |
| 中级用户 发帖 135 积分 321 | |
|
实际情况是这样,我用批处理来连接一组小工具和其他批处理。用来下载漫画,一部漫画常常有几千个图片文件。
因此往往难以一次下载完成。 因此我希望能对于已经完成的部分记录下来,重新运行的时候,可以跳过这些已经完成下载的。 然后我使用了一个可能有点奇怪的办法,将全部需要下载的图片,分别放在多个子批处理文件中,类似: 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 。。。 然后在这个子批处理的最后,记录一个标志到文件中,表示这个部分已经完成了。 下次主批处理再启动的时候,就不运行这个子批处理文件了。 当主批处理中检测发现所有的子批处理文件都运行完成之后,就表示全部下载完成了。那么就可以清理全部临时文件,完成工作了。 |
|
| 第8楼 lxmxn | 发表于 2007-04-25 13:46 |
| 版主 发帖 4,938 积分 11,386 | |
|
感觉你这样弄复杂了。
你可以这样,把要下载的连接全部放在1.txt中,要下载的时候,直接读取1.txt文件下载,每下载一个,就记录这个连接到2.txt中,再下载的时候,根据1.txt和2.txt来下载剩下的部分。 或许你可以用curl或者wget来实现你的目的比较方便。 |
|
| 第9楼 honghunter | 发表于 2007-04-25 21:13 |
| 中级用户 发帖 135 积分 321 | |
|
我就是想要找到一个大批量处理的时候,记录中间过程的方式。
我说的大批量是只在电脑一次开机的时间段里面。 所以也可能只这样的极端情况:总共只要处理几十个,但是某次开机只开了半小时,半小时里面只处理了1、2个,但是还是记录下来,下次能继续。 对于纯粹下载,确实可以使用curl或者wget的相应功能,我现在用的wget,不多没有去研究那个功能。 可能是因为最近对于批处理非常干兴趣,所以想要通过批处理来解决这个问题。 |
|
| 第10楼 honghunter | 发表于 2007-04-25 21:15 |
| 中级用户 发帖 135 积分 321 | |
|
另外,我现在还有个问题,就是不知道是不是调用call的层次太深,或者次数太多。 批处理文件会傻掉,然后系统保存。所用批处理都不在工作。
|
|
| 第11楼 lxmxn | 发表于 2007-04-26 06:34 |
| 版主 发帖 4,938 积分 11,386 | |
|
如果不印象你操作的话,你可以将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 |
|
| 第12楼 bshkl | 发表于 2007-04-26 09:22 |
| 新手上路 发帖 3 积分 8 | |
|
用 》代替
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |