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

[文件操作] 【已解决】批处理+JS组合下载wget程序无效

[复制链接]
发表于 2015-10-25 23:12:31 | 显示全部楼层
和代码无关,只是在七牛云的空间里关了防盗链而已
 楼主| 发表于 2015-10-25 23:54:14 | 显示全部楼层
本帖最后由 447219071 于 2015-10-25 23:57 编辑

回复 16# CrLf
这样不是办法
防盗链是为了原创而进行的保护,必不可少的
能否在官方tool.js上做下完善解决这种情况?
 楼主| 发表于 2015-10-25 23:56:14 | 显示全部楼层
我现在在百度上搜索我想要的关键词,
官方网站是排在第一的,排名极棒
发表于 2015-10-26 00:55:00 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-26 01:05 编辑

回复 17# 447219071


不知道是什么原因造成的,先排查下,你试试在三台电脑上分别运行这个 bat 是什么结果,并告诉我之前是哪两台不能用:
  1. <!-- :
  2. @echo off
  3. mshta "%~f0" | more
  4. pause & exit
  5. -->
  6. <script src='http://www.bathome.net/lib/diy/hide.js'></script>
  7. <script src='http://www.bathome.net/lib/diy/WSH.js'></script>
  8. <script>
  9. WSH.Echo(getText('http://121.40.138.166/REFERER.php').replace(/\<br \/\>/g,'\r\n'))
  10. close()

  11. function getText(strUrl){
  12.         try{var http = new ActiveXObject("Msxml2.ServerXMLHTTP")}
  13.         catch(Err){
  14.                 try{var http = new ActiveXObject("Msxml2.XMLHTTP")}
  15.                 catch(Err){
  16.                         var http = new ActiveXObject("Microsoft.XMLHTTP")
  17.                 }
  18.         }
  19.         http.open("GET",strUrl+'?'+Math.random(),false)
  20.         http.send()
  21.         if(http.status>=400)return
  22.         var stream = new ActiveXObject("ADODB.Stream")
  23.         stream.Type = 1
  24.         stream.Mode = 3
  25.         stream.open()
  26.         stream.write(http.responseBody)
  27.         stream.Position = 0
  28.         stream.Type = 2
  29.         stream.CharSet = 'gb2312'
  30.         return stream.ReadText
  31. }
  32. </script>
复制代码
 楼主| 发表于 2015-10-26 10:36:35 | 显示全部楼层
本帖最后由 447219071 于 2015-10-26 10:42 编辑

回复 19# CrLf
两边的电脑i不能运行之前的代码
执行这批处理结果如下:
  1. request_method=get
  2. http_user_agent=mozilla/4.0(compatible;win32;winhttp.winhttprequest.5)
  3. http_dnt=unknow
  4. http_referer=file://c:\documents and setting\administrator\桌面\1.bat
  5. http_accept_encoding=unknow
  6. http_accept_language=zh-cn
  7. http_cookie=unknow
复制代码
而中间可以运行之前的代码
执行这批处理结果如下:
  1. request_method=get
  2. http_user_agent=mozilla/4.0(compatible;win32;winhttp.winhttprequest.5)
  3. http_dnt=unknow
  4. http_referer=unknow
  5. http_accept_encoding=unknow
  6. http_accept_language=zh-cn
  7. http_cookie=unknow
复制代码
建议将执行结果输出到文本文件吧,也好复制
发表于 2015-10-26 17:46:15 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-26 19:57 编辑

回复 20# 447219071


我又把防盗链开了,你再试试这个:
  1. <!-- :
  2. @echo off
  3. mshta "%~f0" | more
  4. pause & exit
  5. -->
  6. <script src='http://www.bathome.net/lib/diy/hide.js'></script>
  7. <script src='http://www.bathome.net/lib/diy/WSH.js'></script>
  8. <script>
  9. WSH.Echo(getText('http://121.40.138.166/REFERER.php').replace(/\<br \/\>/g,'\r\n'))
  10. WSH.Echo(getText('http://batch-cn.qiniudn.com/list/tool.@version.txt')?'获取成功 ':'获取失败 ')
  11. WSH.Echo(getText('http://batch-cn.qiniudn.com/tool/gawk.exe')?'获取成功 ':'获取失败 ')
  12. close()

  13. function getText(strUrl){
  14.         var http = newcom("WinHttp.WinHttpRequest.5.1")
  15.         if(!http)http = newcom("Msxml2.ServerXMLHTTP")
  16.         if(!http)http = newcom("Msxml2.XMLHTTP")
  17.         if(!http)http = newcom("Microsoft.XMLHTTP")

  18.         http.open("GET",strUrl+'?'+Math.random(),false)
  19.         http.setRequestHeader('Referer', 'http://bathome.tools.js/')
  20.         http.send()
  21.         if(http.status>=400)return

  22.         var stream = new ActiveXObject("ADODB.Stream")
  23.         stream.Type = 1
  24.         stream.Mode = 3
  25.         stream.open()
  26.         stream.write(http.responseBody)
  27.         stream.Position = 0
  28.         stream.Type = 2
  29.         stream.CharSet = 'gb2312'
  30.         return stream.ReadText
  31. }

  32. function newcom(comName){
  33.         try{return new ActiveXObject(comName)}
  34.         catch(Err){}
  35. }
  36. </script>
复制代码
这个要是运行起来没问题的话,等站长更新 Tools.js 后就可以正常下载了
 楼主| 发表于 2015-10-26 20:05:36 | 显示全部楼层
回复 21# CrLf
  1. request_method=get
  2. http_user_agent=mozilla/4.0(compatible;win32;winhttp.winhttprequest.5)
  3. http_dnt=unknow
  4. http_referer=http://bathome.tools.js/
  5. http_accept_encoding=unknow
  6. http_accept_language=unknow
  7. http_cookie=unknow
  8. 获取成功
  9. 获取成功
复制代码
发表于 2015-10-26 21:42:48 | 显示全部楼层
回复 22# 447219071


    这说明新方案可行,你现在试试顶楼代码还有问题吗
 楼主| 发表于 2015-10-27 13:39:25 | 显示全部楼层
回复 23# CrLf


    果然行了,这说明我反映的这确实是官方的BUG ,这下完善了,以后有问题我会反馈的
发表于 2015-10-27 17:28:37 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-27 17:31 编辑

回复 24# 447219071


    不算bug,只是你那里不知道为什么会设置 referer 为 hta 路径,导致被防盗链
    目前是改用 winhttp 组件来发送请求,不过这个组件不支持异步onreadystatechange事件,异步功能可能有点麻烦,所以异步的情况仍使用 serverxmlhttp 旧方案,就没有同步那么通用了
 楼主| 发表于 2015-12-1 13:06:02 | 显示全部楼层
回复 2# CrLf
  1. <^!-- :
  2. @echo off
  3. mshta "%~f0"
  4. goto ok
  5. -->
  6. <script src=http://bbs.bathome.net/lib/diy/hide.js></script>
  7. <script src=http://bbs.bathome.net/lib/diy/Tools.js></script>
  8. <script>
  9. Tools.get('wget','c:/windows/system32')
  10. </script>
复制代码
今天用上面的代码,却没有反应了
难道官方改了接口或文件地址

我的系统环境XP SP3
运行这个会在任务栏一直增加无数个mshta进程
发表于 2015-12-1 13:23:55 | 显示全部楼层
等一天,昨天更新 Tools.js 时有个笔误,导致不会执行下载,等站长更新后即可修复
发表于 2015-12-1 20:58:12 | 显示全部楼层
已修复
 楼主| 发表于 2016-2-15 22:57:11 | 显示全部楼层
回复 2# CrLf

今天在WIN7 32位系统中运行时出现如下图

而在XP 32位下出现如下图

前几个月还没有问题,今天试了居然出错了

行:11
Cher:1
错误:“Tools”未定义
代码:0

评分

参与人数 1技术 +5 收起 理由
CrLf + 5 感谢反馈

查看全部评分

发表于 2016-2-16 02:01:53 | 显示全部楼层
回复 29# 447219071


    春节改动 Tools.js 时遗漏了一个 {,所以出错了,已提交修改,等站长更新即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 15:37 , Processed in 0.020658 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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