windows 批量关闭 python 程序工具

2023-05-16

windows 批量关闭 python 程序工具
在windows上启动大量pythonw 后台程序,都不知道哪个是哪个
-l par query par -a show all -lk par 终止查询到的程序

  • python 源码
import wmi
import os
import time
import sys

def printCmd(process):
    print(process)
    print(f'{process.Handle} | {process.Caption} | {process.CommandLine}')  

def monirtor(prop1,par=None):
    tmpmon = []
    c = wmi.WMI()
    for process in c.Win32_Process(name=prop1):
        if par is None:
            # printCmd(process)
            tmpmon.append(process)
            # print(f'{process.Handle} | {process.Caption} | {process.CommandLine}')  
        else:
            if str(process.CommandLine).find(par) >= 0:
                # print(f'{process.Handle} | {process.Caption} | {process.CommandLine}') 
                # printCmd(process)
                tmpmon.append(process)
    return tmpmon

def killtask(pid):
    os.system(f"taskkill /F /pid {pid} -t") 

def show(par):
    print(f"pid | exe | cmd")

    tmp1 = monirtor('pythonw.exe',par)
    tmp2 = monirtor('python.exe',par)
    for v in tmp1:
        printCmd(v)
    for v in tmp2:
        printCmd(v)



def findKill(par):
    print(f"pid | exe | cmd")

    tmp1 = monirtor('pythonw.exe',par)
    tmp2 = monirtor('python.exe',par)
    for v in tmp1:
        printCmd(v)
    for v in tmp2:
        printCmd(v)

    istr = input("请输入(y/n),终止查询到的程序:")
    if istr == 'y':
        for v in tmp1:
            killtask(v.Handle)
        for v in tmp2:
            killtask(v.Handle)


def help():
    print('qpy query python bakserver')
    print('\t-l par query par')
    print('\t-a show all')
    print('\t-lk par 终止查询到的程序')

if __name__ == "__main__":
    alen = len(sys.argv)
    if alen > 1:
        if sys.argv[1] == '-l':
            if alen <= 2:
                print('-l par is none','demo: qpy -l index')
                exit()
            else:
                show(sys.argv[2])
        elif sys.argv[1] == '-a':
            show(None)
        elif sys.argv[1] == '-k':
            if alen <= 2:
                print('-k pid is none','demo: qpy -k 121212')
                exit()
            killtask(sys.argv[2])
        elif sys.argv[1] == '-lk':
            if alen <= 2:
                print('-lk par is none','demo: qpy -lk index')
                exit()
            else:
                findKill(sys.argv[2])

        else:
            print('CommandLine no fount')
            help()
    else:
        help()

下载exe

打包好的程序 qpy.exe 直接下载

  • 运行结果
C:\Users\Administrator>qpy -a
pid | exe | cmd
8588 | pythonw.exe | pythonw  math202.py
8932 | pythonw.exe | pythonw  math203.py
7796 | pythonw.exe | pythonw  math204.py
7452 | pythonw.exe | pythonw  math205.py
3204 | pythonw.exe | pythonw  math206.py
7888 | pythonw.exe | pythonw  math207.py
5696 | pythonw.exe | pythonw  math208.py
7304 | pythonw.exe | pythonw  math209.py
7172 | pythonw.exe | pythonw  math210.py
5200 | python.exe | python   w1linenei.py
4224 | python.exe | python   w1line.py
4680 | python.exe | python   w5line.py

C:\Users\Administrator>qpy -lk math
pid | exe | cmd
8588 | pythonw.exe | pythonw  math202.py
8932 | pythonw.exe | pythonw  math203.py
7796 | pythonw.exe | pythonw  math204.py
7452 | pythonw.exe | pythonw  math205.py
3204 | pythonw.exe | pythonw  math206.py
7888 | pythonw.exe | pythonw  math207.py
5696 | pythonw.exe | pythonw  math208.py
7304 | pythonw.exe | pythonw  math209.py
7172 | pythonw.exe | pythonw  math210.py
请输入(y/n),终止查询到的程序:n

C:\Users\Administrator>qpy -lk math
pid | exe | cmd
8588 | pythonw.exe | pythonw  math202.py
8932 | pythonw.exe | pythonw  math203.py
7796 | pythonw.exe | pythonw  math204.py
7452 | pythonw.exe | pythonw  math205.py
3204 | pythonw.exe | pythonw  math206.py
7888 | pythonw.exe | pythonw  math207.py
5696 | pythonw.exe | pythonw  math208.py
7304 | pythonw.exe | pythonw  math209.py
7172 | pythonw.exe | pythonw  math210.py
请输入(y/n),终止查询到的程序:y
成功: 已终止 PID 8588 (属于 PID 8248 子进程)的进程。
成功: 已终止 PID 8932 (属于 PID 8516 子进程)的进程。
成功: 已终止 PID 7796 (属于 PID 8408 子进程)的进程。
成功: 已终止 PID 7452 (属于 PID 7176 子进程)的进程。
成功: 已终止 PID 3204 (属于 PID 4524 子进程)的进程。
成功: 已终止 PID 7888 (属于 PID 8584 子进程)的进程。
成功: 已终止 PID 5696 (属于 PID 9196 子进程)的进程。
成功: 已终止 PID 7304 (属于 PID 8396 子进程)的进程。
成功: 已终止 PID 7172 (属于 PID 6652 子进程)的进程。

C:\Users\Administrator>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows 批量关闭 python 程序工具 的相关文章

随机推荐