找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25281|回复: 7

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

[复制链接]
发表于 2011-11-14 12:37:06 | 显示全部楼层 |阅读模式
斑竹:
首先谢谢你帮忙写代码!
我运行代码的时候发现有点不完美!就是有的地址是没有小说的例如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
复制代码
发表于 2011-11-14 13:04:11 | 显示全部楼层
wget -t 3
wget --tries=3

评分

参与人数 1PB +8 收起 理由
CrLf + 8 助人为乐奖金+精神损失费...

查看全部评分

 楼主| 发表于 2011-11-15 20:43:54 | 显示全部楼层
回复 2# awk

完全不好使!没用!

评分

参与人数 1PB -5 收起 理由
CrLf -5 什么语气,人家来帮忙又不欠你的

查看全部评分

 楼主| 发表于 2011-11-16 12:24:24 | 显示全部楼层
继续顶!求解!
发表于 2011-11-16 13:03:34 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2011-11-17 11:46:38 | 显示全部楼层
回复 5# CrLf

没成功呢!

运行一次要不到几秒就完!
////////
可是改了后运行代码!貌似地址都变了?运行还很慢!一个要5秒以上吧!
 楼主| 发表于 2011-11-18 11:40:51 | 显示全部楼层
顶!斑竹看看!
发表于 2011-11-18 13:32:50 | 显示全部楼层
回复 6# jellyhk


    不懂,我都不知道那个 %25i.rar 的文件名是怎么得出来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:54 , Processed in 0.021007 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表