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

用户

我在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文件中添加一个参数来实现吗?或者我应该做些完全不同的事情吗?在


已被浏览了8221次
更新日期: 2020-10-26 05:33:45
3 个回答
fefe Tyson

您可以使用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}$
评论 - 2020年8月7日 23:42
fefe Tyson

我建议使用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
评论 - 2020年8月7日 23:42
fefe Tyson

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

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

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

评论 - 2020年8月7日 23:42

最新Python问答

推荐Python问答