我在Windows autostart文件夹中有4个.bat文件,用于启动Windows中的Sabnzbd、CouchPotato、SickBeard和耳机程序。在这些批处理文件中,我通过如下一行运行Python .py文件:
start "SABnzbd" pythonw "C:\SABnzbd\SABnzbd.py"在所有4个程序启动并运行后,我可以在WIndows任务管理器中看到它们。但是,我无法识别单独的进程。它们都标识为描述为pythonw.exe的pythonw.exe *32

我想要做的是识别每一个程序。你知道怎么做吗?这可以通过在bat文件中添加一个参数来实现吗?或者我应该做一些完全不同的事情?
发布于 2013-09-02 05:39:46
我自己解决了这个问题。
我一直很愚蠢,我发现我可以在任务管理器的进程选项卡中添加列。可用的列之一是Command line,该列准确地显示了我在.bat文件中放入的内容,包括path和path,它显示了进程是什么程序。
由于@Ansgar Wiechers的回答,我一直希望显示命令行
发布于 2013-06-30 19:26:19
我建议使用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发布于 2013-06-30 18:54:34
您可以使用tasklist并过滤输出,以获得与给定名称相关的所有进程ids (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:
pids = processes('pythonw.exe') # <-- the name must be exacthttps://stackoverflow.com/questions/17389388
复制相似问题