如何从命令行获取按用户名和图像名称过滤的PID

NOT*_*dio 4 windows command-line 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"
Run Code Online (Sandbox Code Playgroud)

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

taskkill /F /IM cmd.exe /FI "username eq compUser" /FI "PID neq [orignal task's PID]"
Run Code Online (Sandbox Code Playgroud)

NOT*_*dio 5

我最终不得不这样做的方法是使用:

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
Run Code Online (Sandbox Code Playgroud)

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

taskkill /F /IM cmd.exe /FI "PID ne %pIdNotToKill%" /FI "username eq compUser"
Run Code Online (Sandbox Code Playgroud)

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