分享

批处理下载远程文件!!

 昵称QAb6ICvc 2014-01-08
只要运行下就能自动下载远程服务器上的文件,服务器是http的,ftp的也有,....

比如要下载一个远程服务器上文件到本地D盘的test文件夹里面,怎么实现..??
ftp是servU的 

echo=1/*>nul&@cls
@echo off

call :http "http://img.baidu.com/img/logo-zhidao.gif" D:\test\a.gif

::call :ftp 11.22.33.44 user pass "soft\a.zip" "C:\a.zip"

pause
goto :eof

::-----------------下面是函数定义区域-----------------
:ftp
echo Source: "ftp://%~2:%~3@%~1/%~4"
echo Destination: "%~f5"
echo Start downloading. . .
(
echo open %1
echo %2
echo %3
echo bin
echo get %4 %5
echo quit
)>ftp.tmp
>nul ftp -s:ftp.tmp
del ftp.tmp
echo OK!
goto :eof

:http
echo Source: "%~1"
echo Destination: "%~f2"
echo Start downloading. . .
cscript-nologo -e:jscript "%~f0" "%~1" "%~2"
echo OK!
goto :eof

*/
var iLocal,iRemote,xPost,sGet;
iLocal =WScript.Arguments(1);
iRemote = WScript.Arguments(0);
iLocal=iLocal.toLowerCase();
iRemote=iRemote.toLowerCase();
xPost = new ActiveXObject("Microsoft"+String.fromCharCode(0x2e)+"XMLHTTP");
xPost.Open("GET",iRemote,0);
xPost.Send();
sGet = new ActiveXObject("ADODB"+String.fromCharCode(0x2e)+"Stream");
sGet.Mode = 3;
sGet.Type = 1;
sGet.Open();
sGet.Write(xPost.responseBody);
sGet.SaveToFile(iLocal,2);

/*---------------解释--------------
批处理定义了两个函数ftp与http,分别调用它们则实现ftp和http的下载。
1、函数ftp
先构造一个临时文件,里面包含操作指令,用ftp.exe调用之,完成下载。

2、函数http
包含js代码,用cscript.exe调用之,完成下载。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多