我有一个蝙蝠程序,可以启动 3 个独立的 Java 窗口,如下所示:
start java -jar somejar.jar
start java -jar _the_jar_I_want_to_close_.jar
start java -jar someotherjar.jar
我需要一个关闭的bat命令仅有的_the_jar_I_want_to_close_.jar。不幸的是,这些窗口的唯一区别就是 PID,但是每次启动时 PID 都会改变。
这是我尝试过的
通过 PID 终止任务
taskkill /PID ####
问题:PID 不是恒定的。从 java 中终止所有进程
taskkill /IM java.exe
问题:还有另外 2 个我不想停止的 Java 窗口根据图像名称终止所有进程:
taskkill /IM java
问题:与上面相同,只需要关闭一个窗口,而不是全部三个。
有可能吗?
- 我启动窗口时可以命名窗口吗,以便以后引用该名称?
答案1
为什么不使用start "title 4 kills"
start "java 1" java -jar somejar.jar
start "java 2" java -jar _the_jar_I_want_to_close_.jar
start "java 3" java -jar someotherjar.jar
taskkill /F /FI "WindowTitle eq "java 2"
答案2
这需要两个步骤:
查找 PID(取自此线程https://serverfault.com/questions/126502/how-to-get-own-process-pid-from-the-command-prompt-in-windows:
for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq _the_jar_I_want_to_close_*"`) Do set ourPID=%f
根据PID杀死进程:
taskkill /F /PID %ourPID%