Python实现简单自动升级exe程序版本并自动运行
实现思路:
当前进行下载完文件后,写一个bat脚本,启动脚本,然后退出。
脚本完成删除旧程序,运行新程序的功能。
如果要求不改变exe的名字,可以在脚本中加一句改名字的操作,将旧程序删除后,将新程序改为旧程序的名字,再启动新程序。
新程序启动后,将旧程序遗留的脚本删除。
具体思路规整下:
1. 下载新版软件
2. 关闭当前运行的旧版软件
3. 删除旧版软件
4. 启动新的软件
具体代码如下:
import os
import sys
import subprocess #编写bat脚本,删除旧程序,运行新程序
def WriteRestartCmd(new_name,old_name):b = open("upgrade.bat",'w')TempList = "@echo off\n"TempList += "if not exist " + new_name + " exit \n" #判断是否有新版本的程序,没有就退出更新。TempList += "echo 正在更新至最新版本...\n"TempList += "timeout /t 10 /nobreak\n" #等待10秒TempList += "del " + old_name + "\n" #删除旧程序TempList += "copy " + new_name + " " + old_name + '\n' #复制新版本程序TempList += "echo 更新完成,正在启动...\n"TempList += "timeout /t 3 /nobreak\n"TempList += "start " + old_name+"\n" #"start 1.bat\n"TempList += "exit"b.write(TempList)b.close()subprocess.Popen("upgrade.bat") #不显示cmd窗口# os.system('start upgrade.bat') #显示cmd窗口def main():
#新程序启动时,删除旧程序制造的脚本if os.path.isfile("upgrade.bat"):os.remove("upgrade.bat")WriteRestartCmd("newVersion.exe","Version.exe")if __name__ == '__main__':main()sys.exit()
具体文件如下,newVersion为新下载的程序,Version为运行的程序
Python实现简单自动升级exe程序版本并自动运行相关推荐
- Python实现简单自动升级exe程序版本并自动运行,适合Python自动化运维。
Python自动升级exe程序版本并自动运行,Python自动更新脚本,适合Python自动化运维. 一.此教程是使用bat脚本+NFS实现自动更新.(也可以使用FTP或者使用html实现自动更新) ...
- 【原创】禁止快播自动升级到最新版本,自己发现的方法
[原创]禁止快播自动升级到最新版本,自己发现的方法 快播在国庆期间开始耍大牌了,将快播软件由原来的不是5.0.77版本的升级为5.0.77版本. 在升级之后,遇到的问题多多,本人的机子上就是5.0.7 ...
- python | lackey库实践 |自动化exe程序,完成王者荣耀人机模式获取金币
一个根据设定完成流水线工作的exe程序 比如说:自动打开王者荣耀选择人机模式,然后对战,最后结束游戏.起初我的想法是不断打人机赚金币,结果发现挂机都比程序打的赚的金币多,所有进入游戏一开始是程序操作的 ...
- 如何使编译的EXE程序能多个运行?
如何使编译的EXE程序能多个运行? 方法很简单,把这句话加到EXE对应的INI文件中去 allowmultipleinstances=True 不错吧!:) 转载于:https://www.cnblo ...
- python打包含有参数传递的exe程序
文章目录 1. json解析 2. 参数传递 3. 动态调用函数 4. 配合Pycharm使用argparse 5. 关于路径 5.1 关于pyinstaller打包后的路径问题 6. 打包成exe ...
- python tkinter、PySide2乱炖,自动连续按键程序,不止自动保存
(源码在结尾 背景: 许多人在编辑一些文件的时候都没有按下保存的习惯,这就导致了许多"事故"的发生,使呕心沥血的成果付之东流,在我身边也发生了许多这样的事情,令我痛心疾首,而我本人 ...
- Python实现获取PC客户端exe程序的PID
准备做PC GUI自动化,需要连接程序,连接程序需要有获取PID,想节省时间,网上查了很多没有很合适的demo,于是打算自己写一个,其实原理很简单,就是通过dos命令查出所有的程序,然后解析出所需要的 ...
- apk自动升级,高于android N自动安装不弹框的问题解决
解决 apk自动升级,android高版本自动安装不弹框的问题 特别注意: File apkFile = new File(tempFile); Intent intent = new Intent( ...
- chrome关闭自动升级_为什么Chrome的自动完成功能不安全以及如何将其关闭
chrome关闭自动升级 Chrome has yet to fix a well-known vulnerability first publicized way back in 2013. Chr ...
- PYQT4 Python GUI 编写与 打包.exe程序
工作中需要开发一个小工具,简单的UI界面可以很好的提高工具的实用性,由此开启了我的第一次GUI开发之旅,下面将自己学习的心得记录一下,也做为学习笔记吧!!! 参考:http://www.qaulau. ...
最新文章
- WCF中的序列化[上篇]
- 【Network Security!】Ubuntu18.04切换到root权限和sudo
- 基于 ASK + EB 构建容器事件驱动服务
- Insider Dev Tour 2019巡演中国站
- 微软Build 2017首日主角AI 同时发布.NET Core 2.0 Preview 1
- 1.3 将临时变量内联化
- Eclipse安装WindowsBuilder失败解决方法
- wps两个表格对比数据(怎样对两个EXCEL表格数据对比,找出相同和不同的数据?)
- pr视频两边模糊_Premiere视频教程 在使用Premiere中常见3种模糊效果的制作方法
- 【数据挖掘概念与技术】学习笔记5-数据立方体技术
- 进程间通讯(IPC)(有信号捕捉函数)
- 一款懒人必备的Python爬虫神器
- modbus-tk学习笔记
- IP地址分配和IP地址的划分
- cortex m3的操作模式和状态
- 老域名如何选择才能帮助优化?
- java提供图片链接,提取网页的图片链接的Java程序
- 职场吐槽大会,原来办公软件也有如此多神技能?
- 笔记本电脑内存升级经历
- 网络计划--时间参数的计算和优化