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

如何加速从国外服务器下载图片?

[复制链接]
发表于 2014-11-16 08:17:37 | 显示全部楼层 |阅读模式
本帖最后由 yu2n 于 2014-11-16 08:20 编辑

如何加速从国外服务器下载图片?
用GoAgent代理发现更慢……

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set "MeDir=%~dp0"
  4. set "MeDir=%MeDir:~0,-1%"
  5. set "save_dir=%MeDir%\img"
  6. set "url_0=http://xz1.mm667.com/xz"

  7. for /l %%a in (1,1,100) do (
  8.         set "url_1=000%%a"
  9.         set "url_1=!url_1:~-2!"
  10.         for /l %%b in (1,1,100) do (
  11.                 set "url_2=000%%b"
  12.                 set "url_2=!url_2:~-3!"
  13.                 set "url_3=!url_0!!url_1!/images/!url_2!.jpg"
  14.                 echo,!url_3!
  15.                 wget -c -x -t 5 "!url_3!" -P "%save_dir%"
  16.         )
  17. )
  18. pause
复制代码
注:
1. Wget.exe 请自行下载。
2. 代码中的网址可能不安全,可能造成无法预料的后果,请不要轻易访问。(也许会有福利呢?……XD)
发表于 2014-11-16 13:46:07 | 显示全部楼层
哈哈,收到祝福啦!!!
另外问一句,还有吗?
发表于 2014-11-30 10:47:20 | 显示全部楼层
本帖最后由 523066680 于 2014-11-30 10:50 编辑

开5个进程?比如一个WGET 是30KB/S 其实5个进程的话各自也差不多是20-30KB/S
以前用批处理写过批量下H站封面图 ,后来感觉很低俗,连脚本一起被我删掉了。

大致就是循环里面建立一个 递增变量i
i%5=0 的时候在当前进程wget , 非0的时候start 另开进程wget
因为各个进程下载速度差不多,当前进程的下载会产生延时效果,进程不会很快爆发
一般在5-10个进程浮动。

评分

参与人数 1技术 +1 收起 理由
yu2n + 1 老师傅,过来人啊。

查看全部评分

 楼主| 发表于 2014-11-30 11:41:24 | 显示全部楼层
本帖最后由 yu2n 于 2014-11-30 13:35 编辑
开5个进程?比如一个WGET 是30KB/S 其实5个进程的话各自也差不多是20-30KB/S
以前用批处理写过批量下H站封 ...
523066680 发表于 2014-11-30 10:47

感谢 523066680 版主的提醒,下面是开同时开10个 wget.exe 进程的方法:
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set "MeDir=%~dp0"
  4. set "MeDir=%MeDir:~0,-1%"
  5. set "save_dir=%MeDir%\img"
  6. set "url_0=http://xz1.mm667.com/xz"

  7. for /l %%a in (1,1,100) do (
  8.   set "url_1=000%%a"
  9.   set "url_1=!url_1:~-2!"
  10.   for /l %%b in (1,1,100) do (
  11.     set "url_2=000%%b"
  12.     set "url_2=!url_2:~-3!"
  13.     set "url_3=!url_0!!url_1!/images/!url_2!.jpg"
  14.     rem 限制 10 个 wget.exe 进程
  15.     set/a n=0
  16.     for /f %%c in ('tasklist/nh') do (if /i "wget.exe"=="%%c" set/a n+=1)
  17.     if !n! geq 9 (
  18.       wget -c -x -t 5 "!url_3!" -P "%save_dir%"
  19.     ) else (
  20.       start /min "" wget -c -x -t 5 "!url_3!" -P "%save_dir%"
  21.     )
  22.   )
  23. )
  24. pause
复制代码
发表于 2014-11-30 11:57:04 | 显示全部楼层
本帖最后由 523066680 于 2014-11-30 12:03 编辑

回复 4# yu2n


    start 的句子加上/min 参数,窗口自动最小化,就不会影响其他应用窗口
发表于 2014-11-30 14:01:18 | 显示全部楼层
回复 3# 523066680


    你要相信楼主是纯洁的

评分

参与人数 1技术 +1 收起 理由
yu2n + 1 好人

查看全部评分

发表于 2014-11-30 14:59:55 | 显示全部楼层
回复 6# CrLf


    我只是举个栗子
 楼主| 发表于 2014-11-30 15:09:49 | 显示全部楼层
本帖最后由 yu2n 于 2014-11-30 15:11 编辑

回复 2# bjc5233

XD
没有这种了……

其他的要翻墙。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:25 , Processed in 0.018429 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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