2013-06-30 36 views
1

我在Windows自启动文件夹中有4个.bat文件,用于与Windows一起启动程序Sabnzbd,CouchPotato,SickBeard和耳机。在这些批处理文件运行我通过这样一行Python的.py文件:Indentify通过cmd启动运行pythonw程序

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

毕竟4个程序已经启动并正在运行,我可以看到他们在Windows任务管理器。但是我无法确定单独的流程。他们都标识为pythonw.exe *32与描述pythonw.exe

enter image description here

我试图做的是确定每一个程序。你有什么想法如何做到这一点?这可以通过在bat文件中添加参数来完成吗?或者我应该做一些完全不同的事情?

回答

0

我刚刚解决它自己。

我一直很愚蠢,我发现我可以在任务管理器的进程选项卡中添加列。其中一列是Command line,该列正好显示了我放入.bat文件的内容,包括路径和路径显示了该过程是什么程序。

因为@Ansgar Wiechers'答案我一直在寻找出现命令行

0

您可以使用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:]] 

然后你可以使用的PID:

pids = processes('pythonw.exe') # <-- the name must be exact 
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 
+0

我很抱歉这么晚才回复,我很忙,忘记了这个问题。我将如何得到这个工作?我将它保存在.py文件中,但命令屏幕只是闪烁。 – Dediqated

+0

启动命令提示符并从那里运行Python脚本。 –

+0

...并确保不要使用pythonw启动它。 8-) – mojo

0

使用Pyins更高的将python脚本文件冻结到exe文件中。

然后,您可以通过为这些进程提供不同的exe文件名来识别这些进程。例如Sabnzbd.exe,CouchPotato.exe等

更重要的是,是不是需要Python解释器安装客户端的机器上,因为你提供一个exe文件

+0

这对我不起作用,因为这些程序是通过git更新的 – Dediqated

0

在批处理,您可以通过访问了Wmic.exe WMI(WMI控制台)

wmic Path Win32_Process where Name='pythonw.exe' get ProcessId,CommandLine 

内建的start的第一个引用参数设置窗口标题。通过查看进程不易访问GUI功能。有Win32 API可以做到这一点(我们使用AutoIt来达到这个目的),但在本质上,我不知道它有多容易。