Board logo

标题: [数值计算] 批处理怎样实现当超过3次下载失败就跳到下一日期运行? [打印本页]

作者: jellyhk    时间: 2011-11-14 12:37     标题: 批处理怎样实现当超过3次下载失败就跳到下一日期运行?

斑竹:
首先谢谢你帮忙写代码!
我运行代码的时候发现有点不完美!就是有的地址是没有小说的例如20111111这天是没有小说的!
程序也会运行20次,当然20次都是失败的,也就是说浪费了20秒时间!能不能改下!
改成超过下载3次失败就跳到下一日期!20111111就会跳到20111112继续运行!一直循环
---------------------------------------
  1. @echo off&setlocal enabledelayedexpansion
  2. copy wget.exe %windir%\system32\ >nul
  3. copy rar.exe %windir%\system32\ >nul
  4. echo 输入你要下载的开始日期和结束日期!!!
  5. set /p @start=StartDate(YYYYMMDD):
  6. set /p @end=EndDate  (YYYYMMDD):
  7. set @|findstr /vx "@[a-t]*=[0-9]*[0-9][0-9][0-9][0-9]"&&(
  8.         echo 错误的日期格式
  9.         pause&endlocal&%0
  10. )
  11. for /l %%a in (101 1 131) do (
  12.         set str=%%a
  13.         set b=!b! !str:~-2!
  14.         if %%a leq 112 set a=!b!
  15.         if %%a leq 120 set c=!b!
  16. )
  17. (for /l %%a in (%@start:~,-4% 1 %@end:~,-4%) do (
  18.         for %%b in (%a%) do (
  19.                 for %%c in (%b%) do (
  20.                         set /a "test=(%%a%%b%%c-%@start:-=%|%@end:-=%-%%a%%b%%c)>>31"
  21.                         if !test!==0 echo %%a%%b%%c
  22.                 )
  23.         )
  24. ))>tmp1 2>nul
  25. findstr /ve "0[2469]31 0230 1131 [02468][048]000229 [13579][26]000229" tmp1|findstr /e "[^2].. 12.. 02[0-1]. 022[0-8] [02468][048]0229 [13579][26]0229">tmp2
  26. (for /f %%a in (tmp2) do (
  27.         for %%b in (%c%) do echo %%a%%b
  28. ))>结果.txt
  29. del tmp?>nul
  30. for /f %%i in (结果.txt) do wget -nc -x dzs.qisuu.com/%%i.rar
  31. del 结果.txt
  32. pause
复制代码

作者: awk    时间: 2011-11-14 13:04

wget -t 3
wget --tries=3
作者: jellyhk    时间: 2011-11-15 20:43

回复 2# awk

完全不好使!没用!
作者: jellyhk    时间: 2011-11-16 12:24

继续顶!求解!
作者: CrLf    时间: 2011-11-16 13:03

  1. (for /f %%a in (tmp2) do (
  2.         for %%b in (%c%) do echo %%a%%b
  3. ))>结果.txt
  4. del tmp?>nul
  5. for /f %%i in (结果.txt) do wget -nc -x dzs.qisuu.com/%%i.rar
  6. del 结果.txt
复制代码
改成:
  1. (for /f %%a in (tmp2) do (
  2.         for %%b in (01 02 03) do wget -nc -x dzs.qisuu.com/%%i.rar %%a%%b
  3.         if exist %%a?? (
  4.                  for %%b in (%c:*03 =%) do wget -nc -x dzs.qisuu.com/%%i.rar %%a%%b
  5.         )
  6. ))>结果.txt
  7. del tmp?>nul
  8. pause
复制代码

作者: jellyhk    时间: 2011-11-17 11:46

回复 5# CrLf

没成功呢!

运行一次要不到几秒就完!
////////
可是改了后运行代码!貌似地址都变了?运行还很慢!一个要5秒以上吧!
作者: jellyhk    时间: 2011-11-18 11:40

顶!斑竹看看!
作者: CrLf    时间: 2011-11-18 13:32

回复 6# jellyhk


    不懂,我都不知道那个 %25i.rar 的文件名是怎么得出来的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2