我运行时得到两个结果:
任务列表/ FI“imagename eq PROCESS.exe”
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
PROCESS.exe 2760 Console 1 8,156 K
PROCESS.exe 20160 Console 1 9,060 K
但我只想杀死 ONE ......
如果我打开任务管理器,我可以看到我的每个进程都有不同的描述。
所以我需要做的就是按流程描述进行过滤。
有人可以帮忙吗?
谢谢!
答案 0 :(得分:2)
如果您想按窗口标题过滤流程列表,请使用
tasklist /FI "windowtitle eq Title"
作为@ Axel对WMI的回答的补充 - 与description
相同:
WMIC Process WHERE "Description='Only One'" GET ProcessID
在VBS中:
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process WHERE Description = 'My Desc'",,48)
For Each objItem in colItems
'Do Stuff
Next
description 的另一个可能值是程序集的描述,可以使用PowerShell检索。使用Get-Process
获取装配路径并使用[System.Diagnostics.FileVersionInfo]::GetVersionInfo($File).FileDescription
检索其描述。
答案 1 :(得分:2)
使用以下内容根据自己的进程ID和父进程ID来区分进程:
wmic process get processid,parentprocessid,executablepath | find "PROCESS"
这样,您就可以找到要杀死的进程ID。
wmic
授予对其他流程属性的访问权限。
使用wmic process get /?
找出可用的内容。
另一个可能有用的工具是Microsoft / Sysinternals的PsList。