批处理脚本关闭所需的命令提示符窗口

时间:2018-07-20 10:49:34

标签: windows batch-file cmd

首先,我有一个启动4个Java程序的脚本:

@echo off
cd "C:\work\clientes\loremIpsum\loremIpsum\loremIpsum\target"
start "BROKER" java -jar loremIpsum-broker.jar

cd "C:\work\clientes\loremIpsum\loremIpsum\loremIpsum-virtual-devices-engine\target"
start "VIRTUAL-DEVICES-ENGINE" java -jar loremIpsum-virtual-devices-engine.jar

cd "C:\work\clientes\loremIpsum\loremIpsum\loremIpsum-websocket\target"
start "WEBSOCKET" java -jar loremIpsum-websocket.jar

cd "C:\work\clientes\loremIpsum\loremIpsum-loremIpsum\dandelion-workflow-engine\target"
start "WORKFLOW-ENGINE" java -jar loremIpsum-workflow-engine.jar
exit

我想制作一个仅关闭这4个脚本。我尝试过使用wmic:

@echo off
wmic process where "name like '%java%'" delete
exit

但是我不希望它关闭其他4种Java应用程序

1 个答案:

答案 0 :(得分:1)

最可能是唯一已知的命令行是其结尾,例如-broker.jar。因此,通配符%应该代表命令行的开头,即%-broker.jar(在批处理文件%%-broker.jar中加倍)。因此,您将使用以下内容:

WMIC Process Where "CommandLine Like '%%-broker.jar'" Call Terminate

但是我怀疑java.exe实际上是通过cmd.exe的单独实例传递了初始命令,并在另一个窗口中打开了它,这可能是有问题的,除非我们知道它传递了什么命令!

如果java命令实际上在新的cmd.exe窗口中打开,并带有您指定的窗口标题BROKER,那么您应该可以使用{{1}终止它}。也许是这样的:

TaskKill