【发布时间】:2016-03-23 18:21:14
【问题描述】:
问题与如下所示的脚本有关:
@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 中。执行 taskkill 后,我的名字进程没有显示在 TASKKILL 之后执行的 TASKLIST 中,但它正在运行。虽然它的名字不在 TASKLIST 中,但它正在执行.TASKKILL 成功删除了它的条目,但没有终止进程。我应该如何终止该进程?
【问题讨论】:
-
禁用反恶意软件并重试。如果是 Avast,请尽快卸载。
-
杀死
java进程而不是父cmd一个。有关基本说明,请参阅我的答案。 -
@JosefZ 谢谢它的工作。但我有一个疑问。如果有多个 jar 在运行并且我想识别一个特定的 jar,我将如何识别 jar,因为 WINDOWTITLE 显示 N/A?
-
wmic process where "Caption='java.exe'" get CommandLine, ProcessID /value。使用(两个)FOR /F循环解析它,检查CommandLine,使用/PID开关杀死。见my another answer。如果我的回答有帮助,请考虑将其标记为已接受。 See this page 解释为什么这很重要。
标签: windows batch-file