使用JScript实现远程文件下载与本地保存

作者:百宝袋

时间:2026-10-22

浏览:449

本文介绍利用JScript编写脚本,通过XMLHttpRequest获取远程文件内容,并结合ADODB.Stream组件将数据写入本地指定路径。该方案兼容不同版本的Internet Explorer环境,适用于Windows脚本宿主环境下的文件自动化下载任务。

文章目录

JScript远程文件下载脚本实现

脚本使用示例:cscript this.js http://www.xxx.com/xxx.exe c:\xxx.exe



获取命令行参数对象:var objArgs = WScript.Arguments;


初始化ADODB.Stream对象用于处理二进制数据:var sGet=new ActiveXObject("ADODB.Stream");


声明变量xGet用于存储HTTP请求对象,初始值为false:var xGet = false;


开始尝试创建XMLHttpRequest对象:try {


尝试创建标准的XMLHttpRequest对象:xGet = new XMLHttpRequest();


} 

若标准对象创建失败,捕获异常并尝试兼容旧版IE的Msxml2.XMLHTTP:catch (trymicrosoft) {



再次尝试创建Msxml2.XMLHTTP对象:try {


实例化Msxml2.XMLHTTP对象:xGet = new ActiveXObject("Msxml2.XMLHTTP");


} 

若上述对象创建失败,捕获异常并尝试更旧版本的Microsoft.XMLHTTP:catch (othermicrosoft) {


再次尝试创建Microsoft.XMLHTTP对象:try {


实例化Microsoft.XMLHTTP对象:xGet = new ActiveXObject("Microsoft.XMLHTTP");


    } 

若所有尝试均失败,捕获异常:catch (failed) {


将xGet置为false表示创建失败:xGet = false;


    }
}
}

若成功创建请求对象,打开GET请求,URL为第一个参数(转为小写),同步模式:xGet.Open ("GET",objArgs(0).toLowerCase(),0);


发送请求:xGet.Send();


设置流模式为二进制:sGet.Mode=3;


设置流类型为二进制数据:sGet.Type=1;


打开流对象:sGet.Open();


将HTTP响应体写入流:sGet.Write (xGet.ResponseBody);


将流内容保存到第二个参数指定的本地路径(转为小写):sGet.SaveToFile (objArgs(1).toLowerCase(),2);


实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章