Windows 如何获取pid并使用批处理文件杀死它?

Windows 如何获取pid并使用批处理文件杀死它?,windows,batch-file,cmd,Windows,Batch File,Cmd,我必须为一个特定的jar文件找到一个processid,并使用相同的批处理文件杀死它 C:\Users\k9>ps -ef|grep java 10892 5648 0 Mar 08 con 0:02 "C:\Program Files\Java\jdk1.7.0_51\bin\java" com.mkwebappserver.MainClass -app CATMkWebAppServerConsole\apps_list.html -autobui 13060

我必须为一个特定的jar文件找到一个processid,并使用相同的批处理文件杀死它

C:\Users\k9>ps -ef|grep java
  10892   5648  0   Mar 08 con  0:02 "C:\Program Files\Java\jdk1.7.0_51\bin\java"  com.mkwebappserver.MainClass -app CATMkWebAppServerConsole\apps_list.html -autobui
  13060   7828  0 09:42:28 con 49:05 java  -Djsse.enableSNIExtension=false -Djava.util.logging.config.file=..\config\log.properties -classpath "../extlib/*";..\extlib\mysql-connector-
在这里,我想找到config\log.properties文件的pid,并使用批处理文件将其杀死。

这就是我“查找”和杀死Adobe Acrobat的方式

C:\Users\k9>ps -ef|grep java
  10892   5648  0   Mar 08 con  0:02 "C:\Program Files\Java\jdk1.7.0_51\bin\java"  com.mkwebappserver.MainClass -app CATMkWebAppServerConsole\apps_list.html -autobui
  13060   7828  0 09:42:28 con 49:05 java  -Djsse.enableSNIExtension=false -Djava.util.logging.config.file=..\config\log.properties -classpath "../extlib/*";..\extlib\mysql-connector-
::Close acrobat and any opened PDF
taskkill /im acrobat.exe /t /f 
timeout 2

/im for imagename, or program you're targeting
/t terminates the specified process and any child process which were started by it
/f Forcefully terminate the process
这就是我如何“找到”并杀死AdobeAcrobat的方法

::Close acrobat and any opened PDF
taskkill /im acrobat.exe /t /f 
timeout 2

/im for imagename, or program you're targeting
/t terminates the specified process and any child process which were started by it
/f Forcefully terminate the process

通过命令行(应该包括jar)检测pid最灵活的方法是使用wmic。要处理
wmic
结果并将其分配给变量,您需要为/F设置

@echo off

for /f  "useback tokens=* delims=" %%# in (
    `wmic process where "CommandLine like '%%my_jar.jar%%' and not CommandLine like '%%wmic%%' " get  ProcessId /Format:Value`
) do (
    for /f "tokens=* delims=" %%a in ("%%#") do set "%%a"
)

echo %processId%

echo taskkill /pid %processId% /f
您应该在其中使用您的jar名称更改
“%%my_jar.jar%%”
。要终止进程,您必须删除最后一行中的
echo
单词。它会被回显,以检查是否处理了正确的进程id

有关更多信息:


通过命令行(应该包括jar)检测pid最灵活的方法是使用wmic。要处理
wmic
结果并将其分配给变量,您需要为/F
设置

@echo off

for /f  "useback tokens=* delims=" %%# in (
    `wmic process where "CommandLine like '%%my_jar.jar%%' and not CommandLine like '%%wmic%%' " get  ProcessId /Format:Value`
) do (
    for /f "tokens=* delims=" %%a in ("%%#") do set "%%a"
)

echo %processId%

echo taskkill /pid %processId% /f
您应该在其中使用您的jar名称更改
“%%my_jar.jar%%”
。要终止进程,您必须删除最后一行中的
echo
单词。它会被回显,以检查是否处理了正确的进程id

有关更多信息: