如何在 windows 中终止后台进程并保留前台进程 运行
How to kill a background process in windows and keep foreground process running
正如标题所说,我想杀死某个程序的所有后台进程,但在windows(Server 2016)上保留运行前台程序。所有进程都使用相同的 .exe,因此将它们分开的唯一方法是检查它们是否在后台 运行。
使用任务列表我可以看到不同之处:
Abbildname PID Sitzungsname Sitz.-Nr. Speichernutzung
========================= ======== ================ =========== ===============
BpNexT.exe 6900 Services 0 254.936 K
BpNexT.exe 6164 Console 1 63.912 K
BpNexT.exe 6377 Services 0 251.234 K
必须终止第一个和最后一个进程,第二个进程应保留 运行。
我尝试按服务过滤,但失败了:
taskkill /IM BPNEXT.EXE /FI "services eq Services" /T /F
如何终止所需的进程?
延斯
FOR /f "tokens=*" %%G IN ('tasklist ^| findstr /I BPNEXT.EXE ^| findstr Services') DO (
set /a counter=1
FOR %%H IN (%%G) DO (
if !counter! == 2 (
taskkill /F /PID %%H
)
set /a counter=!counter!+1
)
)
正如标题所说,我想杀死某个程序的所有后台进程,但在windows(Server 2016)上保留运行前台程序。所有进程都使用相同的 .exe,因此将它们分开的唯一方法是检查它们是否在后台 运行。 使用任务列表我可以看到不同之处:
Abbildname PID Sitzungsname Sitz.-Nr. Speichernutzung
========================= ======== ================ =========== ===============
BpNexT.exe 6900 Services 0 254.936 K
BpNexT.exe 6164 Console 1 63.912 K
BpNexT.exe 6377 Services 0 251.234 K
必须终止第一个和最后一个进程,第二个进程应保留 运行。 我尝试按服务过滤,但失败了:
taskkill /IM BPNEXT.EXE /FI "services eq Services" /T /F
如何终止所需的进程?
延斯
FOR /f "tokens=*" %%G IN ('tasklist ^| findstr /I BPNEXT.EXE ^| findstr Services') DO (
set /a counter=1
FOR %%H IN (%%G) DO (
if !counter! == 2 (
taskkill /F /PID %%H
)
set /a counter=!counter!+1
)
)