如何启动在我的应用程序关闭后运行的批处理文件
how to start a batch file that runs after my application closes
我已经使用 wxPython 编写了一个 windows gui 应用程序,它使用 py2exe 编译成可执行文件。我试图让程序检查我们网站上的新版本,下载它,然后覆盖自己。到目前为止,整个功能都可以正常工作,但不出所料,它无法覆盖 运行ning 应用程序(但它成功地覆盖了所有支持文件)。我设计的解决方案是将新的应用程序可执行文件复制到一个临时文件名下,并且我编写了一个批处理文件,该文件将不断尝试覆盖现有文件,直到成功为止。我已经对此进行了测试,如果我 运行 独立地(即手动)批处理文件,它也可以工作。现在我的问题是:我怎样才能让我的应用程序启动批处理文件,而不是等待它完成后再退出,以便批处理文件可以完成复制操作?
我已经尝试了以下方法,它们都会导致应用程序挂起:
os.spawnl(os.P_NOWAIT, 'mybatfile.bat')
os.spawnl(os.P_DETACH, 'mybatfile.bat')
os.execl('mybatfile.bat')
wxPython 内置了 Esky 支持。为什么不只使用它呢?它是一个用于更新冻结应用程序的库:
我已经使用 wxPython 编写了一个 windows gui 应用程序,它使用 py2exe 编译成可执行文件。我试图让程序检查我们网站上的新版本,下载它,然后覆盖自己。到目前为止,整个功能都可以正常工作,但不出所料,它无法覆盖 运行ning 应用程序(但它成功地覆盖了所有支持文件)。我设计的解决方案是将新的应用程序可执行文件复制到一个临时文件名下,并且我编写了一个批处理文件,该文件将不断尝试覆盖现有文件,直到成功为止。我已经对此进行了测试,如果我 运行 独立地(即手动)批处理文件,它也可以工作。现在我的问题是:我怎样才能让我的应用程序启动批处理文件,而不是等待它完成后再退出,以便批处理文件可以完成复制操作?
我已经尝试了以下方法,它们都会导致应用程序挂起:
os.spawnl(os.P_NOWAIT, 'mybatfile.bat')
os.spawnl(os.P_DETACH, 'mybatfile.bat')
os.execl('mybatfile.bat')
wxPython 内置了 Esky 支持。为什么不只使用它呢?它是一个用于更新冻结应用程序的库: