通过批处理文件运行应用程序,并在脚本结束后保持运行

问题描述 投票:0回答:1

我有一个Windows应用程序,它开始运行.bat文件。此 .bat 文件在启动 .exe 之前调用不同的东西。问题是,无论我做什么,我都可以运行该 .exe,但是一旦脚本结束,应用程序也会结束。我认为这个问题与 .exe 需要通过该 .bat 文件启动这一事实有关。这是我已经用 python 尝试过的东西:

subprocess.Popen(['cd','path\\to\\the\\script', '&&', 'start.bat' ], shell=True, text=True | subprocess.DETACHED_PROCESS )
time.sleep(10)

睡眠结束后,启动的 .exe 将关闭。我也尝试过不同的子进程参数,例如

subprocess.CREATE_NEW_PROCESS_GROUP
但没有运气。

我也尝试过:

os.system('cd "path\\to\\the\\script" && "start.bat"')

同样的事情。我已经尝试过从这里找到的答案,但没有运气。

那么是否有其他方法来启动该 .bat 文件并以某种方式让它“真正”存在,因为我认为问题是,当 .bat 文件完成其工作时,它会退出,这会以某种方式把事情搞砸。

在调用 .bat 之后在 python 中创建无限循环听起来也不是一个好的解决方案,只是为了保持调用进程的运行。

不,我不能直接调用.exe。

python batch-file
1个回答
0
投票

运行 .exe 后,您可以检查它是否运行(参见此线程

这将类似于:

import psutil
 
if "YourEXEProcess" in (p.name() for p in psutil.process_iter(attrs=['name'])):
    time.sleep(some appropriate amount of time)
else:
    end of script
© www.soinside.com 2019 - 2024. All rights reserved.