[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

50元求批处理结束指定jar文件发起的进程

急,有偿求助50元,如解决的好可加钱,希望各位大侠帮忙,谢谢!
小弟目前遇到一个问题,恳请大侠们指点,问题如下:
在windows 7下在cmd中使用java -jar 1.jar ;java -jar 1.jar;java -jar 2.jar 执行3个可执行jar包,在tasklist中这三个进程的镜像名称全部为
java.exe(但是CommandLine是不一样的),我想写一个批处理脚本,此脚本完成的功能是识别两个由1.jar发起的进程,杀死他们,但不能对由2.jar拉
起的进程有任何影响,最好不要使用wmic的process命令,因为此命令涉及执行权限问题,如果使用请解决权限问题,问题不要局限于两个1.jar发起的进程
就是说可能有不定数量的1.jar发起的进程。最后的.bat文件,只要双击便可以执行最好,谢谢!如有不明白之处,请QQ:416096436,希望大家多多帮忙,
再次拜谢!

另存为kill.vbs双击执行即可。
  1. 'Author: Demon
  2. 'Website: http://demon.tw
  3. 'Date: 2012/7/19
  4. 'On Error Resume Next
  5. strComputer = "."
  6. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  7. Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48)
  8. For Each objItem in colItems
  9.     If StrComp(objItem.Name, "java.exe", vbTextCompare) = 0 Then
  10.         If InStr(objItem.CommandLine, "1.jar", vbTextCompare) > 0 Then
  11.             objItem.Terminate
  12.         End If
  13.     End If
  14. Next
复制代码

TOP

如能提供一个详细的tasklist最好!~或用wmic获得详细的进程然后再处理是比较容易的!~
至于杀进程,taskkill提供了筛选器,可以特殊情况考虑。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

谢谢版主,用wmic是可以,但是在管理员权限下可以达到预期效果,但是在普通权限下,没有成功。

TOP

不是权限的问题,我怀疑错了,为什么WMIC PATH Win32_Process WHERE "CommandLine like '%MLogin%'" get ProcessId 或者WMIC PATH Win32_Process WHERE "CommandLine like '%MLogin%'" call Terminate这样的命令在cmd窗口中可以正藏执行,而在bat文件中就不能整成执行,求解答,谢谢!

TOP

不是权限的问题,我怀疑错了,为什么WMIC PATH Win32_Process WHERE "CommandLine like '%MLogin%'" get ProcessId 或者WMIC PATH Win32_Process WHERE "CommandLine like '%MLogin%'" call Terminate这样的命令在cmd窗口中可以正藏执行,而在bat文件中就不能整成执行,求解答,谢谢!

TOP

在执行bat时,新打开的cmd窗口中,回显的命令中%MLogin%没有显示出来,%%一般都是系统变量或引用变量,应该怎样修改?求指导,昨天一直在为WMIC PATH Win32_Process WHERE "CommandLine like '%MLogin%'" call Terminate纠结。

TOP

感谢二楼的Demon,已经帮我解决了问题,非常谢谢他!

TOP

返回列表