我使用命令
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%
答案 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"。