我想要下載一個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