通过cmd s识别正在运行的pythonw程序

2024-04-26 12:54:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows的autostart文件夹中有4.bat文件,用于启动程序Sabnzbd、couchpototo、SickBeard和耳机以及Windows。在这些批处理文件中,我通过如下行运行Python.py文件:

start "SABnzbd" pythonw "C:\SABnzbd\SABnzbd.py"

在所有4个程序已经启动并运行之后,我可以在WIndows任务管理器中看到它们。但是,我无法确定单独的过程。它们都标识为pythonw.exe *32,描述为pythonw.exe

enter image description here

我要做的是识别每个程序。你知道怎么做吗?这可以通过在bat文件中添加一个参数来实现吗?或者我应该做些完全不同的事情吗?在


Tags: 文件py程序文件夹windowsexestart耳机
3条回答

我建议使用python的WMI package(请参见this answer):

import wmi

c = wmi.WMI ()
for process in [p for p in c.Win32_Process () if p.Name == 'pythonw.exe']:
    print process.ProcessId, process.CommandLine

使用Pyinstaller将python脚本文件冻结为exe文件。在

然后,您可以通过给它们不同的exe文件名来标识这些进程。例如。Sabnzbd.exe文件, CouchPotato.exe等等

而且,由于您提供了一个exe文件,所以不需要在客户机上安装python解释器

您可以使用tasklist并过滤输出以获得与给定名称相关的所有进程ID(PID):

import os
def processes(name):
    os.system('tasklist /FI "IMAGENAME eq %s" > tmp.txt' % name)
    tmp = open('tmp.txt', 'r')
    return [int(i.split()[1]) for i in tmp.readlines()[3:]]

然后您可以使用pids:

^{pr2}$

相关问题 更多 >