我想找到一个应用程序是否是打开的,并得到它的PID。为此,我用,
wmic process where name="notepad.exe" get ProcessId如果有两个,notepad.exe的是打开的,它显示了2个PID的,我想要taskkill一个,如果2个是打开的。我该怎么做呢。如何检查一次是否有两个相同命名的进程(具有特定名称)打开?有办法将tasklist存储在列表中吗?
发布于 2017-09-18 11:46:18
我想这就是你想要的:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET /A I=0
SET PIDS=
FOR /F "tokens=*" %%G IN ('wmic process where name^="notepad.exe" get ProcessId ^| FINDSTR /v ProcessId ^| FINDSTR /r /v "^$"') DO (
SET /A I=I+1
SET PIDS=!PIDS!%%G,
SET PIDS=!PIDS: =!
)
SET PIDS=!PIDS:~1,-1!
ECHO Found %I% processes
ECHO PIDs: %PIDS%它将输出进程计数和PID作为逗号分隔的列表。如果我在chrome.exe上运行它,下面是输出
C:\tmp>q46277950.bat
Found 12 processes
PIDs: 1696,5668,11644,4240,1624,4284,15076,15236,2816,11388,5652,5840https://stackoverflow.com/questions/46277950
复制相似问题