实现思路: 
当前进行下载完文件后,写一个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程序版本并自动运行相关推荐

  1. Python实现简单自动升级exe程序版本并自动运行,适合Python自动化运维。

    Python自动升级exe程序版本并自动运行,Python自动更新脚本,适合Python自动化运维. 一.此教程是使用bat脚本+NFS实现自动更新.(也可以使用FTP或者使用html实现自动更新) ...

  2. 【原创】禁止快播自动升级到最新版本,自己发现的方法

    [原创]禁止快播自动升级到最新版本,自己发现的方法 快播在国庆期间开始耍大牌了,将快播软件由原来的不是5.0.77版本的升级为5.0.77版本. 在升级之后,遇到的问题多多,本人的机子上就是5.0.7 ...

  3. python | lackey库实践 |自动化exe程序,完成王者荣耀人机模式获取金币

    一个根据设定完成流水线工作的exe程序 比如说:自动打开王者荣耀选择人机模式,然后对战,最后结束游戏.起初我的想法是不断打人机赚金币,结果发现挂机都比程序打的赚的金币多,所有进入游戏一开始是程序操作的 ...

  4. 如何使编译的EXE程序能多个运行?

    如何使编译的EXE程序能多个运行? 方法很简单,把这句话加到EXE对应的INI文件中去 allowmultipleinstances=True 不错吧!:) 转载于:https://www.cnblo ...

  5. python打包含有参数传递的exe程序

    文章目录 1. json解析 2. 参数传递 3. 动态调用函数 4. 配合Pycharm使用argparse 5. 关于路径 5.1 关于pyinstaller打包后的路径问题 6. 打包成exe ...

  6. python tkinter、PySide2乱炖,自动连续按键程序,不止自动保存

    (源码在结尾 背景: 许多人在编辑一些文件的时候都没有按下保存的习惯,这就导致了许多"事故"的发生,使呕心沥血的成果付之东流,在我身边也发生了许多这样的事情,令我痛心疾首,而我本人 ...

  7. Python实现获取PC客户端exe程序的PID

    准备做PC GUI自动化,需要连接程序,连接程序需要有获取PID,想节省时间,网上查了很多没有很合适的demo,于是打算自己写一个,其实原理很简单,就是通过dos命令查出所有的程序,然后解析出所需要的 ...

  8. apk自动升级,高于android N自动安装不弹框的问题解决

    解决 apk自动升级,android高版本自动安装不弹框的问题 特别注意: File apkFile = new File(tempFile); Intent intent = new Intent( ...

  9. chrome关闭自动升级_为什么Chrome的自动完成功能不安全以及如何将其关闭

    chrome关闭自动升级 Chrome has yet to fix a well-known vulnerability first publicized way back in 2013. Chr ...

  10. PYQT4 Python GUI 编写与 打包.exe程序

    工作中需要开发一个小工具,简单的UI界面可以很好的提高工具的实用性,由此开启了我的第一次GUI开发之旅,下面将自己学习的心得记录一下,也做为学习笔记吧!!! 参考:http://www.qaulau. ...

最新文章

  1. WCF中的序列化[上篇]
  2. 【Network Security!】Ubuntu18.04切换到root权限和sudo
  3. 基于 ASK + EB 构建容器事件驱动服务
  4. Insider Dev Tour 2019巡演中国站
  5. 微软Build 2017首日主角AI 同时发布.NET Core 2.0 Preview 1
  6. 1.3 将临时变量内联化
  7. Eclipse安装WindowsBuilder失败解决方法
  8. wps两个表格对比数据(怎样对两个EXCEL表格数据对比,找出相同和不同的数据?)
  9. pr视频两边模糊_Premiere视频教程 在使用Premiere中常见3种模糊效果的制作方法
  10. 【数据挖掘概念与技术】学习笔记5-数据立方体技术
  11. 进程间通讯(IPC)(有信号捕捉函数)
  12. 一款懒人必备的Python爬虫神器
  13. modbus-tk学习笔记
  14. IP地址分配和IP地址的划分
  15. cortex m3的操作模式和状态
  16. 老域名如何选择才能帮助优化?
  17. java提供图片链接,提取网页的图片链接的Java程序
  18. 职场吐槽大会,原来办公软件也有如此多神技能?
  19. 笔记本电脑内存升级经历
  20. 网络计划--时间参数的计算和优化

热门文章

  1. 2020中青杯本科题目学习
  2. 学习OpenCV 4(一)
  3. java调用fudannlp_利用FudanNLP進行新聞關鍵詞提取 | 學步園
  4. Cisco ❀ QinQ技术与VXLAN技术的区别
  5. HRD 必须了解的持续绩效的优势
  6. java实现类的封装(物体实现椭圆运动)
  7. 上海臻图信息3DGIS+BIM技术助力智慧城市地下综合管廊建设
  8. SQLyog数据库:主键外键代码添加
  9. 服务器维护委托合同,服务器维护委托合同样本.doc
  10. Oracle项目管理系统之合同控制概述