这个问题与下面显示的脚本有关:
@echo on
:MAIN
start "myname" cmd /c "build\jre\bin\java -jar MainThread.jar"
timeout /t 2 >null
TASKLIST /v /fi "IMAGENAME eq cmd.exe">myfile.txt
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /v /fi "IMAGENAME eq cmd.exe">myfile2.txt
:exit当我第一次执行任务列表时,我的名字被列在执行任务列表的TASKLIST.After中,在taskkill之后执行的TASKLIST中没有显示我的名字进程,但是它是running.Although,它的名字在tasklist中不存在,它是executing.TASKKILL成功地删除了它的条目,但是没有杀死process.How,我应该杀死这个进程吗?
发布于 2016-03-23 22:34:50
启动的java进程使用父cmd窗口名,但不早于后者父母cmd进程被终止。使用替代的where给出的没有安装java的证据(因为where.exe运行了很长一段时间来截图,甚至检查任务管理器)。
测试脚本
@echo on
:MAIN
start "myname" cmd /C where /R c:\ "whistle.*"
@timeout /t 1 >null
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
:exit输出
==> D:\bat\SO\36185868.bat
==> start "myname" cmd /C where /R c:\ "whistle.*"
==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"cmd.exe","3340","Console","1","2 240 K","Running","pcn\usern","0:00:00","myname"
==> TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Unknown","pcn\usern","0:00:01","N/A"
==> TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
SUCCESS: The process with PID 3340 has been terminated.
==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Running","pcn\usern","0:00:01","myname"
==>截图

发布于 2016-03-24 07:19:10
谢谢你们的帮助。我使用了TASKKILL /f /t /fi "IMAGENAME eq cmd.exe“/fi "WINDOWTITLE eq myname”命令。/t用于关闭所有子进程,而其子进程中的1的java.exe已关闭。
https://stackoverflow.com/questions/36185868
复制相似问题