我有Windows自动启动文件夹中的4个.bat文件,用于与Windows一起启动程序Sabnzbd,CouchPotato,SickBeard和耳机。 在这些batch file中,我通过这样的一行来运行Python .py文件:
start "SABnzbd" pythonw "C:SABnzbdSABnzbd.py"
在所有4个程序启动并运行之后,我可以在WIndows任务pipe理器中看到它们。 但是,我无法确定单独的进程。 它们全部用pythonw.exe *32标识为pythonw.exe *32 :
我想要做的是确定每个程序。 你有什么想法如何做到这一点? 这可以通过在bat文件中添加一个参数来完成吗? 或者我应该做一些完全不同的事情?
什么是Windows的“pidof”从Linux相当于什么?
计算batch file中使用的磁盘空间
如何检查variables是否包含batch file中的特殊字符
EC2 Windows实例在重启后没有从启动文件夹启动batch file
为Windows XP命令行提供“前置”function
在Windows命令提示符下的cp -r相当于没有错误代码1
如何在Windows 7下从batch file运行Java应用程序而无需popup控制台窗口?
批量退出for循环
Windows批量curl到variables
如何从PL / sql过程中运行batch file
我建议使用Python的WMI包 (请参阅此答案 ):
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
您可以使用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
使用Pyinstaller将python脚本文件冻结到exe文件中。
然后你可以通过给他们不同的exe文件名来识别这些进程。 例如Sabnzbd.exe,CouchPotato.exe等
更重要的是,由于您提供了一个exe文件,因此不需要在客户机上安装python解释器
批处理,您可以通过wmic.exe(WMI控制台)访问WMI
wmic Path Win32_Process where Name='pythonw.exe' get ProcessId,CommandLine
start内置的第一个引用的参数设置窗口标题。 GUI功能不容易通过查看进程访问。 有这样做的Win32 API(我们使用AutoIt来达到这个目的),但在本地,我不知道它是多么容易。
我自己就解决了
我一直很愚蠢,我发现我可以添加列在任务管理器的进程选项卡。 其中一个可用的列是Command line ,该列正好显示了我放在.bat文件中的路径,路径显示了这个过程是什么程序。
由于@Ansgar Wiechers的回答,我一直在寻找显示命令行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。