[英]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.