繁体   English   中英

解析批处理文件中的可执行控制台输出

[英]Parse executable console output in batch file

所以我运行此命令来找到运行我的JAR的Java进程。

wmic.exe process where "name like '%java%'" get processid,commandline | find "myjar.jar"

上面命令的控制台输出如下所示:

javaw  -jar "\myjar.jar"  1932

我如何解析此输出,以便可以使用进程ID 1932使用以下命令将其杀死:

TASKKILL /PID 1932

您不需要获取PID ,也不需要使用TaskKillWMIC可以直接为您执行此操作。

在命令行中:

WMIC Process Where "CommandLine Like '%myjar.jar%'" Call Terminate >Nul 2>&1

从批处理文件中,您需要将百分比字符加倍:

@WMIC Process Where "CommandLine Like '%%myjar.jar%%'" Call Terminate >Nul 2>&1

这可能是非常原始的实现,但是它将为您获取进程号。 试试下面的代码:

String output = "javaw  -jar \"\\myjar.jar\"  1932";
String[] res = output.split("\\s");
System.out.println(res[res.length-1]);

打印出的结果将是“ 1932”。

我假设您知道如何从Java运行的控制台应用程序获取输出。 如果没有,我也可以提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM