我想要下载一个msi并安装它,所有这些都在脚本中静静地进行。我想尝试类似start iexplore.exe http://domain.com/file.msi /qn
但不幸的是,它只会下载MSI而不开始安装。 有人知道如何解决这个问题吗?在脚本下载后安装?
0
A
回答
0
在这里,你去。我还没有测试过它,但我至少已经从另一个项目中获得了JScript函数。用.bat
扩展名保存该文件,根据需要修改set url=
行,然后运行它。
@if (@[email protected]) @end /*
:: batch portion
@echo off
setlocal
set url=http://domain.com/file.msi
set saveloc=%temp%\file.msi
cscript /nologo /e:jscript "%~f0" "%url%" "%saveloc%"
msiexec /i "%saveloc%" /qn /norestart
:installwait
ping -n 2 0.0.0.0 >NUL
wmic process where name="msiexec.exe" get name 2>NUL | find /i "msiexec" >NUL && goto installwait
del "%saveloc%"
goto :EOF
:: JScript portion */
function fetch(url) {
var xObj = new ActiveXObject("Microsoft.XMLHTTP");
xObj.open("GET",url,true);
xObj.setRequestHeader('User-Agent','XMLHTTP/1.0');
xObj.send('');
while (xObj.readyState != 4) WSH.Sleep(50);
return(xObj);
}
function save(xObj, file) {
var stream = new ActiveXObject("ADODB.Stream");
with (stream) {
type = 1;
open();
write(xObj.responseBody);
saveToFile(file, 2);
close();
}
}
save(fetch(WSH.Arguments(0)), WSH.Arguments(1));
0
您还必须“启动”下载的文件。它将下载到默认的下载位置(在Windows 7中为C:\ Users [用户名] \下载,除非它已被更改)。但是,您必须等待文件等待下载完成,否则将无法运行msi。据我所知,没有办法让它检查你,所以你只需要花几秒钟时间来计算最长的预期下载时间。等待可以通过几种不同的方式完成,具体取决于您正在使用的操作系统。一个例子是
timeout /t [seconds] /nobreak > NUL
此接受秒的等待时间,且/ NOBREAK意味着它忽略按键(其通常将指示继续进行定时器完成之前)。另一种方法是让批处理文件ping一个无效的IP地址(1.1.1.1)达一定的毫秒数。例如
PING 1.1.1.1 -n 1 -w [milliseconds] >NUL
希望这会有所帮助。
相关问题
- 1. PowerShell脚本之后安装
- 2. 安装后在izpack中执行脚本
- 3. 在maven安装后运行脚本
- 4. npm安装无法执行exec安装后脚本bower安装
- 5. 在脚本中安装gem之后,如何加载gem?
- 6. 本地CDH安装仍在下载
- 7. 如何在下载完成后自动安装apk安装
- 8. 在Mac上安装后安装脚本的帮助
- 9. 如何在下载后执行脚本?
- 10. 自动安装apk后下载
- 11. 下载后自动安装apk文件
- 12. 有条件的安装后脚本
- 13. NuGet安装后运行PowerShell脚本
- 14. 安装后,python测试脚本失败
- 15. 时区错误安装脚本后
- 16. Yocto构建的linux后安装脚本
- 17. 在Atom中安装脚本
- 18. 批处理脚本安装以安装和卸载.net
- 19. php安装脚本
- 20. PHP安装脚本
- 21. MySQL安装脚本
- 22. cx_Freeze。安装后如何安装服务并执行脚本
- 23. 确保百胜安装,如果安装后脚本失败
- 24. rbenv安装不下载ruby版本
- 25. 下载脚本
- 26. Magento的安装脚本或安装脚本将无法工作
- 27. 文件下载后运行脚本
- 28. perl脚本的安装脚本
- 29. 下载然后通过批量安装 - 我如何下载然后默默安装msi?
- 30. 电子安装错误:在[email protected]安装后失败脚本'节点install.js'
感谢您的脚本。它返回这个响应:'H:\ My Documents \ Kbox.bat(39,9)ADODB.Stream:参数的类型错误, 超出可接受的范围,或者相互冲突。 – RaptorPete
@RaptorPete - 除非您告诉我您尝试下载的MSI文件的URL,否则我认为我无法解决问题。 – rojo