加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何从命令行获取PID,用username和imagename过滤

发布时间:2020-12-14 02:09:25 所属栏目:Windows 来源:网络整理
导读:我需要能够使用命令行从正在运行的进程(cmd.exe)中获取PID. 问题是有两个cmd.exe正在运行.一个是用户名SYSTEM,一个是compUser.有没有办法可以获取compUser cmd.exe的PID? 编辑:这需要进一步解释. 我是从批处理文件中执行此操作的.我在批处理文件中进行的一
我需要能够使用命令行从正在运行的进程(cmd.exe)中获取PID.
问题是有两个cmd.exe正在运行.一个是用户名SYSTEM,一个是compUser.有没有办法可以获取compUser cmd.exe的PID?

编辑:这需要进一步解释.
我是从批处理文件中执行此操作的.我在批处理文件中进行的一个调用启动了一个永不消亡的cmd.exe.因此杀死cmd.exe很简单:

taskkill /F /IM cmd.exe /FI "username eq compUser"

问题是我所在的批处理文件正由用户名compUser下的另一个cmd.exe实例处理.我尝试做的是在启动第二个cmd.exe之前从原始cmd.exe获取PID.这样我就可以使用命令:

taskkill /F /IM cmd.exe /FI "username eq compUser" /FI "PID neq [orignal task's PID]"

解决方法

我最终必须这样做的方法是使用:

TASKLIST /NH /FI  "IMAGENAME eq cmd.exe" /FI "username eq compUser"> psid.txt
FOR /F "tokens=2" %%I in (psid.txt ) DO set pIdNotToKill=%%I

就在我开始挂起的批处理脚本之前.然后当我准备杀死悬挂的cmd窗口时:

taskkill /F /IM cmd.exe /FI "PID ne %pIdNotToKill%" /FI "username eq compUser"

可能有更好的方法,但这很有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读