Python启动Windows cmd(.bat)命令行并kill进程_windows kill python进程 cmd-CSDN博客

Python启动Windows cmd(.bat)命令行并kill进程

有时候需要通过Python启动一个Windows下的.bat文件,并在启动时候加入一些命令选项,比如典型的网络ping命令等。假设现在已经在Windows下写好了一个.bat文件,需要由Python启动,由Python接管这个.bat启动的进程,并在某些时机下关闭这个进程。

import subprocess, psutilimport time if __name__ == '__main__':    bat_path = r'.bat文件路径 可以跟一些启动参数选项'     # 正常创建一个cmd命令的进程,并在python的标准输出管道窗口打印    process = subprocess.Popen(bat_path, shell=False, stdout=subprocess.PIPE)     # 将阻塞process的运转,意味着process不会再输出    time.sleep(3)     # 递归kill进程    pobj = psutil.Process(process.pid)    for c in pobj.children(recursive=True):        c.kill()    pobj.kill()

上面代码在启动一个.bat文件后,等待3秒再将这个.bat文件启动的进程kill掉。.bat输出的内容在Python的标准输出里面。

如果把process的创建改成:

process = subprocess.Popen(bat_path, creationflags=subprocess.CREATE_NEW_CONSOLE)

将会打开一个标准的Windows 控制台窗口(黑窗口)执行.bat。但仍可以在python代码里面通过pid句柄kill掉这个新开的Windows控制台窗口。

判断进程是否在运行:

psutil.Process(process.pid).is_running()

判断进程是否还存在:

psutil.pid_exists(进程的pid)

原网址: 访问
创建于: 2025-01-08 12:17:46
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论