繁体   English   中英

TASKKILL后命令行窗口未关闭

[英]Commandline Window not closing after TASKKILL

我使用命令

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手动终止该进程,则会提示“终止批处理作业(Y / N)?”。 这与关闭窗口有关吗?

编辑:

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

双重编辑:

弄清楚了。

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%

如果您尝试执行以下操作,而不是call start startComponent.bat

call start cmd.exe /C startComponent.bat`

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

您是从命令行还是其他bat文件运行命令“ call start startComponent.bat”?

编辑:

1)尝试运行简单的“ start startComponent.bat”而不使用“ call”。

2)尝试“启动/ B startComponent.bat”。

暂无
暂无

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

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