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
- 运行结果
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>