TASKKILL之后命令行窗口未关闭

时间:2015-05-28 15:46:27

标签: windows batch-file command-line

我使用命令

call start startComponent.bat

在单独的窗口中启动应用程序。当我想要停止它时,我使用命令运行另一个批处理文件:

FOR /F "tokens=2" %%A IN ('tasklist /v ^| findstr /i "startComponent"') DO SET PID=%%A
TASKKILL /F /PID %PID%

这具有杀死进程的所需任务,但是为运行组件而打开的命令提示符不会自动关闭。

顺便说一句,如果我想用CTRL-C手动终止进程,它会提示“终止批处理作业(是/否)?”。这可能与窗户没有关闭有关吗?

编辑:

startCompoonent.bat启动一个java进程。我的新问题是如何杀死java.exe的特定实例。如果我执行taskkill / f java.exe,它将终止所有java.exe进程。有没有办法用名称启动java(即startComponent.exe)?

DOUBLE EDIT:

想出来。

FOR /F "tokens=2" %%A IN ('tasklist /v ^| findstr /i "startComponent"') DO SET PID=%%A
TASKKILL /F /PID %PID%
FOR /F "tokens=1" %%A IN ('C:\Progra~1\Java\jdk1.7.0_79\bin\jps -v ^| findstr /i "ComponentMain"') DO SET PID=%%A
TASKKILL /F /PID %PID%

2 个答案:

答案 0 :(得分:0)

而不是arguments如果您尝试了以下方面的内容:

call start startComponent.bat

答案 1 :(得分:0)

在我的系统(Win 7)上,您的任务运行正确,并且在taskkill之后关闭了startComponent.bat的命令行窗口。

你是否运行命令"调用start startComponent.bat"从命令行或从其他bat文件?

编辑:

1)尝试运行简单"启动startComponent.bat"没有"打电话"。

2)尝试"开始/ B startComponent.bat"。