如何在Windows中杀死一个java进程(按名称)' CMD.EXE?

时间:2015-08-01 06:19:58

标签: windows batch-file cmd kill

当我运行jps -lv时,我得到了

  

4748 org.apache.abc.runtime.common.abc -XX:PermSize = 128m   -XX:MaxPermSize = 128m -Xmx512m -ea -Dproc_abc 11140 sun.tools.jps.Jps -Dapplication.home = C:\ Program Files \ Java \ jdk1.7.0_79 -Xms8m

我需要使用windows batch命令来杀死abc。

在linux中,

taskkill /f /pid $(jps -lv   | grep abc   | awk '{print $1}')

这可行,但在Windows中,我无法找到如何操作。

请帮帮我。

2 个答案:

答案 0 :(得分:3)

您可以像这样批量试用:

@echo off
for /f "delims= " %%a in ('jps -lv ^| find /i "common"') do set PID=%%a
taskkill /f /PID %PID%
pause

或者这样:

@echo off
for /f "tokens=1" %%A in ('jps -lv ^| find "common"') do (taskkill /F /PID %%A)
pause

答案 1 :(得分:1)

从SysInternals看一下pskill

Usage: pskill [-t] [\\computer [-u username [-p password]]] 
     -t    Kill the process and its descendants.
     -u    Specifies optional user name for login to
           remote computer.
     -p    Specifies optional password for user name. If you omit this
           you will be prompted to enter a hidden password.

但是对于Windows中更现代的方法,使用PowerShell和WMI会更好。

EG。要在命令行上使用“default”终止FireFox进程,我可以使用:

(gwmi win32_process -filter 'name = "firefox.exe" and commandline like "%default%"').Handle | % { stop-process $_ }

gwmiGet-WmiObject的缩写,Win32_Process对象使用其Handle属性来保存进程ID。 %ForEach-Object的别名,并执行传递的脚本块。 $_是传递给管道的当前对象,