使用JScript实现远程文件下载与本地保存
本文介绍利用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);
定制 Quill.js 主题样式:修改默认 CSS 与添加自定义类名
2026-11-04 11:21:35
混淆JS代码怎么在线反混淆并格式化阅读
2026-11-03 21:46:39
JS在线编辑器代码报错怎么调试?控制台使用技巧
2026-11-03 21:24:56
从 marked.js 旧版本升级到最新版:API 变更与迁移指南
2026-11-03 17:38:17
JS富文本编辑器Quill与代码编辑器CodeMirror的区别及应用场景
2026-11-03 16:52:09
