概述
习惯了linux的查杀进程命令,对windows下的再做一个补充,主要是针对Java应用程序进程。
Java程序在Windows平台和Linux平台上运行时的区别是,使用命令默认显示的进程信息不同:Linux上默认会显示脚本名,而windows默认不显示启动脚本名 只显示java.exe, 使用tasklist命令一看,全是java.exe,区分不出来了。
因此windows上查杀java进程的关键问题在于识别java进程。
准备
Windows下进程的查杀命令主要有两个,即TaskList和Taskill,查看具体用法:
- 在cmd窗口中键入命令 TaskList /?
- 参考http://blog.sina.com.cn/s/blog_51a4af870100dygp.html
正文
识别java进程
思路是这样子:windows下cmd中提供了WindowTitle即窗口标题这个东东,因此我们可以通过在java程序启动脚本中设置title,然后在查杀脚本中使用tasklist或者taskill的过滤器/fi来根据窗口标题确定指定进程。
比如:
tasklist /fi "WINDOWTITLE eq pageCrawlTask" /image java.exe
获取进程参数
显示所有 svchost.exe 进程的PID、会话名及会话编号:
for /F "skip=3 tokens=2,3,4" %i in ('tasklist /fi "IMAGENAME eq svchost.exe"') do @echo %i %j %k
查杀进程命令
Taskkill /f /im java.exe /fi "Windowtitle eq pageCrawlTask"
查杀进程脚本
@echo off
Taskkill /f /im java.exe /fi "Windowtitle eq pageCrawlTask" >nul
pause