|
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
状态 离线
|
|
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
状态 离线
|
|
2007-4-26 09:22 |
|