如何使用taskkill跳过查杀进程

时间:2014-01-03 04:23:56

标签: java windows cmd taskkill

我正在使用以下代码来杀死所有java进程。

taskkill /F /IM javaw.exe
taskkill /F /IM java.exe
exit

当我需要杀死所有java进程时,这很好用。问题是当我运行它时它也会杀死我的日食过程。如何跳过eclipse进程并终止所有其他java进程。

1 个答案:

答案 0 :(得分:0)

一种方法是保存eclipse进程的PID,然后在对所有java进程进行任务处理时,排除该PID

改编自Kill only one process with taskkill

在一个cmd窗口中:

使用批处理文件启动eclipse:

start eclipse.exe
for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe') do set PIDTOSAVE=%%x

并终止你将使用

for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe ^| findstr /v %PIDTOSAVE%') do taskkill /F /PID %%x

我发现的另一种方法是使用与JDK捆绑在一起的jps程序,以按名称查找java进程。见http://yannickloriot.com/2012/08/kill-a-java-process-from-the-command-line-or-a-bat-file/#sthash.bFaaPUxi.dpbs。示例用法是:

for /f "tokens=1" %i in ('jps -m ^| find "YOUR_JAVA_PROCESS_NAME"') do ( taskkill /F /PID %i )

最好的方法取决于您的具体用例。