返回列表 发帖

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双击执行即可。
'Author: Demon
'Website: http://demon.tw
'Date: 2012/7/19
'On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48)
For Each objItem in colItems
    If StrComp(objItem.Name, "java.exe", vbTextCompare) = 0 Then
        If InStr(objItem.CommandLine, "1.jar", vbTextCompare) > 0 Then
            objItem.Terminate
        End If
    End If
NextCOPY

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

返回列表