2017-06-21 182 views
0

我有一个批处理文件,它启动一个.exe,然后启动另一个批处理文件。 如何获得更新的cmd.exe实例的PID?获取进程启动的cmd实例的PID?

+0

通过使用任务列表,你甚至可以在PID过滤HTTPS:// ss64.com/nt/tasklist.html,在你的情况下,你可能想要过滤的名称的exe文件 – 2017-06-21 13:50:57

+1

你可以试试[pslist](https://ss64.com/nt/pslist.html) - 它可以列出进程作为列表,你可以检查exe启动了什么。 – npocmaka

+1

你有没有第二次启动蝙蝠的控制权?你可以让它打印它自己的PID到一个文件,稍后你可以红色 – npocmaka

回答

0

最好的解决办法来做到这一点(保存为.bat文件,并尝试)

它列出了与它开始的时间和PID在第3列的CMD.exe过程,让你知道最新一个是你想要的! :)(或在这种情况下,一个刚刚因为最新一期最新一期之前是在cmd运行检查进程ID)

@echo off&cls 
pushd %~dp0 

powershell.exe -command "Get-Process | select name, starttime, id | out-file cmdproc.txt" 
find "cmd" cmdproc.txt 

echo. 
pause 
rem CLEANUP 
del /f cmdproc.txt 
+0

谢谢。我发现这个解决方案我认为更好:http://www.dostips.com/forum/viewtopic.php?t=6133。但现在我有另一个问题。当试图回显变量%cmdpid%时,我得到“Echo is on”。我该如何解决它? –

+0

“Echo is on”是由于某处放置错位的空间或角色,如果您有SET命令,请确保在等号附近没有空格(请参阅:https://stackoverflow.com/questions/12328744/why -i-am-getting-echo-when-trying -print-a-variable-in-batch) – Rakha

+0

如果你想知道PID和WindowTitle或者当前的CMD,我建议你输入以下代码:https: //pastebin.com/AZ98y2XH 您可以将PID和WindowTitle变量保存到文件或其他任何文件中以供进一步处理。 – Rakha