标题: [文件操作] BAT如何监控下载目录,每满一千个文本即拷出? [打印本页]
作者: pan528 时间: 2013-8-9 10:05 标题: BAT如何监控下载目录,每满一千个文本即拷出?
有一个下载文本的目录,要下载的文本有十几万个。下载时断时继,如果等全部下载完再处理,很费时。
我想每下载到一定数量时(如1000个),即自动处理一批(如将其拷贝出来)。
对我来讲,这有点复杂,请高手指点。
作者: gawk 时间: 2013-8-9 12:21
假设现在下载目录下面有2000个文件,你怎么知道哪个下载完了哪个还没下完?
作者: CrLf 时间: 2013-8-9 13:52
判断数量不如判断时间,最终效果是一样的,但资源占用和复杂度都降低了许多
作者: Bearxy 时间: 2013-8-9 14:38
我是新手哈,在不考虑资源占用和复杂度的情况下。如何拷贝1000个新文本也是个问题。
例如第一次运行,1000个文本拷贝出来之后,第二次就有2000个文本。如何判定这2000个文本里面哪些是拷贝过的,哪些是未拷贝过的?
如果不是拷贝是移动就好了。
作者: xxpinqz 时间: 2013-8-9 21:29
简单点用xopcy /exclude: 和xcopy /d:结合
这估记不好解,像2楼说的,没法判断是否下载完毕。
作者: pan528 时间: 2013-8-10 06:50
回复 3# CrLf
判断时间也可以是一种解决方案,缺点是每个时间段的文本不一样多。因为下载是时断时继的,有时可能相差多一些。
作者: pan528 时间: 2013-8-10 06:57
回复 4# Bearxy
移出来也可以是降低难度的解决方案。那就要修正下载的方案。目前我用的是多个批命令同时下载,如果服务器中断,重新下载时要判断一下下载目录中不存在的文本才接着下载。
作者: pan528 时间: 2013-8-10 07:01
回复 5# xxpinqz
是否下载完不是判断难点,下载完成会自动生成当前时间,只要拷贝一分钟前的文件,就是完整的文件。
作者: pan528 时间: 2013-8-10 07:03
回复 2# gawk
同楼上理由。
作者: xxpinqz 时间: 2013-8-10 17:01
回复 8# pan528
难道断点续传的文件就没日期不成??????
截个未下载完成的文件和已下载的文件图上来看看。
用扩展名判断还靠谱点。
作者: CrLf 时间: 2013-8-10 21:51
用延时+ xcopy /d 简单实现一个,十五分钟没出现更新的文件,就判定为下载完成:- @echo off
- set n=0
- :loop
- ping>nul /n 300 127.1
- set /a n+=1
- xcopy "下载路径\*" "目标路径\" /s /d|find "\"&&set "n=0"
- if %n% leq 3 goto loop
-
- echo 下载完成
- pause
复制代码
如果要排除下载产生的临时文件后缀名,可以用 /exclude .download 选项来排除 .download 文件
robocopy 更容易实现监测文件变动,可惜 xp 不自带
作者: gawk 时间: 2013-8-11 19:57
回复 10# xxpinqz
扩展名判断目测不靠谱,FTP不会像某些下载软件那样把未下载完毕的文件名设置成.part什么的,它完全跟原始文件一个名字。
作者: pan528 时间: 2013-8-28 14:25
回复 11# CrLf
很抱歉,最近比较忙,没有时间测试。
感谢回帖!
试了一下,拷不出文本来,不知错在哪里?请指教。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |