自动升级exe程序版本并自动运行,自动更新脚本,适合自动化运维

日期: 栏目:文章分享 浏览:1506 评论:0

自动升级exe程序版本并自动运行Chrome 自动升级后,本地项目都无法访问,自动更新脚本,适合自动化运维。

一、此教程是使用bat脚本+NFS实现自动更新。(也可以使用FTP或者使用html实现自动更新)

检查NFS服务器上的.ini配置文件和当前运行的程序版本是否一至,如果检测出来有新的版本,程序就自动编写.bat脚本将旧版本的程序删除Chrome 自动升级后,本地项目都无法访问,将NFS服务器上的新版本程序下载下来并启动最新版本的exe程序。

Chrome 自动升级后,本地项目都无法访问_3pxpx网页升级访问升级访问_u盘无法打开,双击后弹出 无法访问h 访问拒绝

将编译好最新的exe和对应的.ini版本的配置文件放到NFS服务器即可,前提是当前运行的程序有以下自动更新的功能。

1、编写.ini文件

[select]
version=v4

2、编写.py

编写bat部分参考于

# coding=UTF-8
import os
import sys
import subprocess
import configparser
#编写bat脚本,删除旧程序,运行新程序
def writeUpgrade(exe_name):
    b = open("upgrade.bat",'w')
    TempList = "@echo off\n"
    TempList += "if not exist" + 'z:\\' + exe_name + " exit \n"  #判断是否有新版本的程序,没有就退出更新。
    TempList += "echo 正在更新至最新版本...\n"
    TempList += "timeout /t 10 /nobreak\n"  #等待10秒
    TempList += "del " + os.path.realpath(exe_name) + "\n" #删除旧程序
    TempList += "copy  z:\\" + exe_name + " " + exe_name + '\n' #复制新版本程序
    TempList += "echo 更新完成,正在启动...\n"
    TempList += "timeout /t 3 /nobreak\n"
    TempList += "start " + exe_name   #"start 1.bat\n"
    TempList += "exit"
    b.write(TempList)
    b.close()
    # subprocess.Popen("upgrade.bat") #不显示cmd窗口
    os.system('start upgrade.bat')  #显示cmd窗口
    #如果是FTP就编写FTP的相应代码
def checkVersion(): #检查版本
    if not os.path.isdir('z:\\'):  #判断是否有z盘,没有就mount,使用mount命令需要提前安装好NFS客户端
        os.system('mount 172.18.114.172:/app z:')
    config = configparser.ConfigParser()  # 类实例化
    path = r'z:\\version.ini'
    config.read(path)
    value = config['select']['version'] #获取版本号
    return value
    #也可以使用以下代码获取程序版本号
    #url = r'http://172.18.114.172/index.html'
    #value = requests.get(url).text

3、修改主程序

# coding=UTF-8
import glob
import update
def study():
	#你的自动化代码
def updateApp(version):
    newVersion = update.checkVersion()	#获取新版本号
    if os.path.isfile("upgrade.bat"):	#判断是否有upgrade.bat这个文件,有就删除
        os.remove("upgrade.bat")
    if version < newVersion:	#判断当前程序是否是最新版本
        print('当前版本:', version, '\t最新版本:', newVersion)
        return True
    return False
if __name__ == "__main__":
    version = 'v3'
    print('最新版本:', version)
    dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))		#获取当前程序的路径
    path = dirname + '\\' + glob.glob('待学习账号*.xls')[0]		#获取数据文件
    print(path)
    browser = ''
    while True:  #重复执行
        try:
            if updateApp(version): 	#检查是否有新版本
                time.sleep(2)		#强制等待2秒
                update.writeUpgrade("多课程同时学习.exe")	#更新程序
                break
            browser = webdriver.Chrome('chromedriver.exe')		#这里是将程序和驱动放在同一目录
            study()		#替换成你的自动化函数
        except:			#当try中的代码运行出错后执行以下代码
            if browser:
                browser.quit()	#当自动化的代码出现错误结束了运行,在这里将浏览器关闭
            print('ERROR ReLoading...')
            continue

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看