Window平台下的静默下载并安装软件脚本bat
一,隐藏命令窗口
当我们运行bat脚本的时候,弹出CMD窗口。如果要隐藏窗口可以在bat脚本开头处写一下代码:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
二,以管理员身份运行
如何始终以管理员身份运行bat文件?
其实很简单,只需要新建一个bat文件,填入以下代码后运行即可:
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )::下面写你的脚本
三,下载功能
调用Download Wscript.Arguments的vbs脚本来实现下载,http和https的链接都可以:
@echo off & title Bat+Vbs 下载器 By 熊仔其人::设置要下载的文件链接。必写项。
set Url=https://wdl1.cache.wps.cn/wps/download/W.P.S.8919.12012.2019.exe::设置文件保存目录,若下载至当前目录,请留空
set Save=D:\document
if exist %Save% (echo 位置:%Save%) else (mkdir %Save% & echo 已创建:%Save%)for %%a in ("%Url%") do set "FileName=%%~nxa"
if not defined Save set "Save=%cd%"
(echo Download Wscript.Arguments^(0^),Wscript.Arguments^(1^)
echo Sub Download^(url,target^)
echo Const adTypeBinary = 1
echo Const adSaveCreateOverWrite = 2
echo Dim http,ado
echo Set http = CreateObject^("Msxml2.ServerXMLHTTP"^)
echo http.open "GET",url,False
echo http.send
echo Set ado = createobject^("Adodb.Stream"^)
echo ado.Type = adTypeBinary
echo ado.Open
echo ado.Write http.responseBody
echo ado.SaveToFile target
echo ado.Close
echo End Sub)>DownloadFile.vbsDownloadFile.vbs "%Url%" "%Save%\%FileName%"
::下载完删除生成的vbs文件
del DownloadFile.vbs
四,Windows启动目录
WinXP: C:/Documents and Settings/Administrator/「开始」菜单/程序/启动Win7: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartupWin10: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup所有用户通用启动目录: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
四,Demo
一、新建记事本,复制代码粘贴到记事本,保存为“静默下载并安装.bat”
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
@echo off & WPS下载器::设置要下载的文件链接,仅支持http协议。必写项。
set Url=https://wdl1.cache.wps.cn/wps/download/W.P.S.8919.12012.2019.exe::设置文件保存目录,若下载至当前目录,请留空
set Save=D:\document
if exist %Save% (echo 位置:%Save%) else (mkdir %Save% & echo 已创建:%Save%)for %%a in ("%Url%") do set "FileName=%%~nxa"
if not defined Save set "Save=%cd%"
(echo Download Wscript.Arguments^(0^),Wscript.Arguments^(1^)
echo Sub Download^(url,target^)
echo Const adTypeBinary = 1
echo Const adSaveCreateOverWrite = 2
echo Dim http,ado
echo Set http = CreateObject^("Msxml2.ServerXMLHTTP"^)
echo http.open "GET",url,False
echo http.send
echo Set ado = createobject^("Adodb.Stream"^)
echo ado.Type = adTypeBinary
echo ado.Open
echo ado.Write http.responseBody
echo ado.SaveToFile target
echo ado.Close
echo End Sub)>DownloadFile.vbsDownloadFile.vbs "%Url%" "%Save%\%FileName%"
del DownloadFile.vbsif exist "%Save%\%FileName%" (echo 位置:"%Save%\%FileName%" & start /wait "" "%Save%\%FileName%" /QB REBOOT=Suppress & pause >nul ) else (echo "%Save%\%FileName%"文件不存在)
二、与上一个脚本不同的是,如果这一个脚本会覆盖旧文件,即下载目录下存在已下载过的同名文件会覆盖,因此该脚本可以重复执行。执行成功后自动退出。
:: 熊仔其人,始终以管理员身份运行
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )@echo off & WPS下载器::设置要下载的文件链接,仅支持http协议。必写项。
set Url=https://wdl1.cache.wps.cn/wps/download/W.P.S.8919.12012.2019.exe::设置文件保存目录,若下载至当前目录,请留空
set Save=C:\
if exist %Save% (echo 位置:%Save%) else (mkdir %Save% & echo 已创建:%Save%)for %%a in ("%Url%") do set "FileName=%%~nxa"
if not defined Save set "Save=%cd%"
(if exist "%Save%\%FileName%" (goto beginInstall)
echo Download Wscript.Arguments^(0^),Wscript.Arguments^(1^)
echo Sub Download^(url,target^)
echo Const adTypeBinary = 1
echo Const adSaveCreateOverWrite = 2
echo Dim http,ado
echo Set http = CreateObject^("Msxml2.ServerXMLHTTP"^)
echo http.open "GET",url,False
echo http.send
echo Set ado = createobject^("Adodb.Stream"^)
echo ado.Type = adTypeBinary
echo ado.Open
echo ado.Write http.responseBody
echo ado.SaveToFile target
echo ado.Close
echo End Sub)>DownloadFile.vbsif exist "%Save%\%FileName%" (echo 位置:%Save%\%FileName% & goto beginInstall) else (echo 下载:%FileName% 请等待)
DownloadFile.vbs "%Url%" "%Save%\%FileName%"
::del DownloadFile.vbs:beginInstall
del DownloadFile.vbs
if exist "%Save%\%FileName%" (echo 安装:%Save%\%FileName% 请稍等,可能需要您手动确认安装 & start /wait "" "%Save%\%FileName%" /verysilent sp- & exit ) else (echo 异常:%Save%\%FileName% 文件不存在或被损坏!)
三、在前面两个案例的基础上,增加了隐藏命令窗口的功能,即执行脚本的过程对于用户来说不可见。不过双击执行的时候窗口还是会闪一下。
:: 熊仔其人,始终以管理员身份运行
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )@echo off & WPS下载器::设置要下载的文件链接,仅支持http协议。必写项。
set Url=https://wdl1.cache.wps.cn/wps/download/W.P.S.8919.12012.2019.exe::设置文件保存目录,若下载至当前目录,请留空
set Save=C:\
if exist %Save% (echo 位置:%Save%) else (mkdir %Save% & echo 已创建:%Save%)for %%a in ("%Url%") do set "FileName=%%~nxa"
if not defined Save set "Save=%cd%"
(if exist "%Save%\%FileName%" (goto beginInstall)
echo Download Wscript.Arguments^(0^),Wscript.Arguments^(1^)
echo Sub Download^(url,target^)
echo Const adTypeBinary = 1
echo Const adSaveCreateOverWrite = 2
echo Dim http,ado
echo Set http = CreateObject^("Msxml2.ServerXMLHTTP"^)
echo http.open "GET",url,False
echo http.send
echo Set ado = createobject^("Adodb.Stream"^)
echo ado.Type = adTypeBinary
echo ado.Open
echo ado.Write http.responseBody
echo ado.SaveToFile target
echo ado.Close
echo End Sub)>DownloadFile.vbsif exist "%Save%\%FileName%" (echo 位置:%Save%\%FileName% & goto beginInstall) else (echo 下载:%FileName% 请等待)
DownloadFile.vbs "%Url%" "%Save%\%FileName%"
::del DownloadFile.vbs:beginInstall
del DownloadFile.vbs
if exist "%Save%\%FileName%" (echo 安装:%Save%\%FileName% 请稍等,可能需要您手动确认安装 & start /wait "" "%Save%\%FileName%" /verysilent sp- & exit ) else (echo 异常:%Save%\%FileName% 文件不存在或被损坏!)
参考资料:
1、https://www.cnblogs.com/xiongzaiqiren/p/11268615.html 20200605
Window平台下的静默下载并安装软件脚本bat相关推荐
- Window平台下通过cmd命令查看端口占用、查看进程、结束进程
Window平台下通过cmd命令查看端口占用.查看进程.结束进程 一.概述: (更好的阅读体验,请移步我的个人博客)在学习进程间通讯的时候,我们知道有一种通讯方式叫做socket.对于跨主机之间的进程 ...
- transmission Linux(debian)下的BT下载客户端安装
transmission Linux(debian)下的BT下载客户端安装 转载于:https://blog.51cto.com/2042617/1597540
- 手机怎么下载python并安装-CentOS下python的下载及安装
针对" CentOS下python的下载及安装 "的问题,下面由IT产品经理-陆亦晓为您解答: Python这门编程语言在数据分析.数据发掘以及服务端开发等方面都有非常好的使用,我 ...
- centos下python编程工具_CentOS下python的下载及安装
针对" CentOS下python的下载及安装 "的问题,下面由IT产品经理-陆亦晓为您解答: Python这门编程语言在数据分析.数据发掘以及服务端开发等方面都有非常好的使用,我 ...
- 03-windows下Oracle的下载与安装
简介:windows下Oracle的下载与安装 1.下载 http://www.oracle.com/technetwork/database/enterprise-edition/downloads ...
- python 下载及安装-CentOS下python的下载及安装
针对" CentOS下python的下载及安装 "的问题,下面由IT产品经理-陆亦晓为您解答: Python这门编程语言在数据分析.数据发掘以及服务端开发等方面都有非常好的使用,我 ...
- win7下ie6兼容测试之Windows7(win7)下 XP Mode 下载、安装、设置完全图解
win7下ie6兼容测试 之 Windows7(win7)下 XP Mode 下载.安装.设置完全图解 <一.简述Windows XP Mode,及硬件需求测试> Windows 7携带了 ...
- C++教程系列之-02-win10系统下codeblocks-20.03下载与安装
C++教程系列之-02-win10系统下codeblocks-20.03下载与安装 1. codeblocks-20.03下载与安装 1.1 codeblocks-20.03mingw-setup.e ...
- Linux系统下Python的下载与安装
Linux系统下Python的下载与安装 1- 下载安装前准备 linux中需提前安装前置依赖环境 命令如下: yum install wget zlib-devel bzip2-devel open ...
最新文章
- MySQL模糊查询再也用不着 like+% 了!
- docker file 打包jar_Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行
- Python Django安装MySQL库
- 华睿相机sdk 开发_告别翻转腾挪,读码一步到位丨华睿科技六面读码系统
- 快来围观一下JavaScript的Proxy
- java findclass_带你深入了解Class类-深度分析:反射从入门到精通
- 如何在论文中自动生成标准的参考文献格式
- Python-Excel 模块哪家强 #华为云·寻找黑马程序员#
- http://jingyan.baidu.com/article/636f38bb3eb78ad6b8461082.html
- redis技术分享ppt_精美PPT制作培训 | 技术二部内部分享
- 点击按钮返回上一个页面_零基础跟老陈一起学WordPress 《第四课》用WP半小时建一个商业网站...
- 163发送邮件服务器拒收,向网易163邮箱发信常见退信说明
- 怎么把WORD中插入的图片改为统一尺寸的,看这里,文档中图片怎么改成同样大小
- 扫雷游戏C语言编程实现
- Android系统的指纹开发
- chmod +x 与chmod 777的区别
- 全票通过!微众开源项目EventMesh进入Apache孵化器
- c语言感叹号放最后用法,感叹号的用法和注意事项
- Biorhythms(信息学奥赛一本通 1639)
- SAP GOS附件上传与下载[代码直接可用]