Board logo

标题: [文件操作] 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 简单实现一个,十五分钟没出现更新的文件,就判定为下载完成:
  1. @echo off
  2. set n=0
  3. :loop
  4. ping>nul /n 300 127.1
  5. set /a n+=1
  6. xcopy "下载路径\*" "目标路径\" /s /d|find "\"&&set "n=0"
  7. if %n% leq 3 goto loop
  8. echo 下载完成
  9. 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://www.bathome.net/) Powered by Discuz! 7.2