标题: [特效代码] BAT批处理wget下载问题,请大神给个思路 [打印本页]
作者: dailyad 时间: 2020-5-13 19:37 标题: BAT批处理wget下载问题,请大神给个思路
先谢谢了。- echo on
- wget.exe -i 1.txt -nc -c -t2 -T 60 -P ./Download
复制代码
用批处理代码批量下载小型文件,只有几kb,由于是外网问题,常常有无法下载的,由于待下载文件超级多,近十万个。
可不可以修改以下代码,使未下载的链接用新文件输出。下次就只运行新文件就行了,这样节省时间。
下载不了的代码
HTTP request sent, awaiting response... 500 Internal Server Error
2020-05-13 19:23:58 ERROR 500: Internal Server Error.
还有404
作者: xp3000 时间: 2020-5-13 21:57
这个我去下别人网站mp3,下载了差不多70G,发现有的没下载完就断了,但是名称不会变,最好是先下载为别的类型完了改名回来下,
还有次是网页突然停电,这下惨了,刚刚还批量替换内容呢,名称顺序乱的,下载的文件也是别人服务器储存的时间,这下彻底找不到哪个是最后下载半截的了
作者: bailong360 时间: 2020-5-13 22:23
换 aria2c 吧,支持断点续传并且不会重复下载文件
作者: netdzb 时间: 2020-5-13 23:28
回复 1# dailyad
还可以试一下curl
作者: wujunkai 时间: 2020-5-14 06:36
回复 4# netdzb
curl可以下载二进制文件吗?
作者: dailyad 时间: 2020-5-14 08:40
多谢各位热心的大咖,我的意思要备份未下载成功的链接,以免再次刷新下载,虽说wget也支持断点下载及设置不下载已有文件,问题是刷新一次下载耗时,不如只刷为下载成功的链接,或者在少数几个链接的情况下可以手动想办法搞定
作者: wujunkai 时间: 2020-5-14 13:09
回复 6# dailyad
可是wget的提示里没有出现失败的链接啊,不如吧1.txt的内容提取出来一个个喂给wget,如果失败就储存
作者: dailyad 时间: 2020-5-14 16:19
回复 7# wujunkai
这个思路可以有,多谢
作者: xp3000 时间: 2020-5-14 17:39
本帖最后由 xp3000 于 2020-5-15 07:48 编辑
上面说的对,用第三方工具aria2c下载吧,
…………
昨天注释有误,已经修正,
aria2c的-s不是任务数,是线程。
默认s 5下载5线程,我刚刚下载网页多了被网站屏蔽了
缺少的文件下载后放入C:\Windows\System32
这个单个下载- @echo off
- title aria2c下载工具 ^& grep输出未下载链接
- CD /D "%~dp0"
- @for /f "delims=" %%a in ('dir /a/s/b/on *.txt') do (md "%%~na" & echo 正在后台下载,不要关闭……
- @for /f "tokens=*" %%i in (%%a) do (
- aria2c.exe -c -s 10 -d "%%~na" %%i|grep -Po "mERROR.+URI=[^\r\n]+"|grep -oP "[^=]+$">>%%~na未下载.log
- ping -n 5 127.0>nul
- )
- )
复制代码
这个批量下载- @echo off
- title aria2c下载工具 ^& grep输出未下载链接
- CD /D "%~dp0"
- echo 准备同时下载5个链接……
- echo 部分网站批量下载会拉黑……
- echo 碰到此类网站直接关闭退出……
- pause
- cls
- @for /f "delims=" %%a in ('dir /a/s/b/on *.txt') do (md "%%~na" & echo 正在后台批量下载,不要关闭……
- aria2c.exe -c -s 10 -d "%%~na" -j 5 -i %%a|grep -Po "mERROR.+URI=[^\r\n]+"|grep -oP "[^=]+$">>%%~na未下载.log
- )
- )
复制代码
作者: xp3000 时间: 2020-5-15 10:18
findstr输出,不用多下载一个grep- @echo off
- title aria2c下载工具 ^& findstr输出未下载链接
- CD /D "%~dp0"
- @for /f "delims=" %%a in ('dir /b/a-d/oN *.txt') do (md "%%~na" & echo 正在后台单链接下载,不要关闭……
- @for /f "tokens=* delims==" %%i in (%%a) do (echo;正在下载:%%i&set "fn=%%i"&set fn=!fn:^[=!!fn:^]=!
- aria2c.exe -c -s 5 -d "%%~na" %%i|findstr /i /r "mERROR.*URI=[^\r\n]*"
- echo %%i>>%%~na未下载.log
- ping -n 5 127.0>nul
- )
- )
复制代码
作者: netdzb 时间: 2020-5-15 10:21
回复 5# wujunkai
这个我没用过,其余2个都有用过。
作者: xp3000 时间: 2020-5-15 10:37
findstr不怎么会用,感觉也不好有
作者: dailyad 时间: 2020-5-16 10:33
感谢以上各位,利用论坛整合了一个分步处理bat文件,看起来有用,每一次运行生成两个TXT,下次要运行就直接修改关键地方的TXT。
应该还可以优化的 ,然后不知道怎么优化了- @echo ********************************************
- @echo * 欢迎使用多组合批量下载系统!@by DAILYAD*
- @echo ********************************************
- @echo * 用法:
- @echo * 1.取要下载文件的关键词,每一个关键词必须唯一,和要下载的文件一一对应。
- @echo * 2.将要下载的关键词输入到1.txt,每行一个关键词。
- @echo * 3.自行建立Download文件夹
- @echo * 4.以上和wget.exe在同一文件夹
- @echo *************************************************
- @pause
- echo on
- for /f "delims=" %%a in ('type "1.txt"') do start /b "" "wget.exe" -nc -c -t0 -T120 "网址/%%a.文件类型" -P "./Download"
-
- @echo ********************************************
- @echo * 统计已下载文件*
- @echo ********************************************
-
- for /f "delims=" %%i in ('dir/s/b *.文件类型')do echo %%~ni>>2.txt
-
- @echo ********************************************
- @echo * 对比文件,导出未下载成功文件*
- @echo ********************************************
-
- findstr /v /x /g:2.txt 1.txt > 3.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |