首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过cmd start识别正在运行的pythonw程序

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

Stack Overflow用户
提问于 2013-06-30 18:25:52
回答 5查看 1.9K关注 0票数 1

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

代码语言:javascript
复制
start "SABnzbd" pythonw "C:\SABnzbd\SABnzbd.py"

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-02 05:39:46

我自己解决了这个问题。

我一直很愚蠢,我发现我可以在任务管理器的进程选项卡中添加列。可用的列之一是Command line,该列准确地显示了我在.bat文件中放入的内容,包括path和path,它显示了进程是什么程序。

由于@Ansgar Wiechers的回答,我一直希望显示命令行

票数 0
EN

Stack Overflow用户

发布于 2013-06-30 19:26:19

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

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2013-06-30 18:54:34

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
pids = processes('pythonw.exe') # <-- the name must be exact
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17389388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档