如何用bat關閉特定的java視窗?

如何用bat關閉特定的java視窗?

我有一個啟動 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 每次啟動時都會改變。

這是我嘗試過的

  1. 透過 PID 殺死任務taskkill /PID #### 問題:PID 不是恆定的。

  2. 殺死java中的所有流程taskkill /IM java.exe 問題:還有另外 2 個我不想停止的 java 窗口

  3. 按映像名稱殺死所有進程:taskkill /IM java 問題:與上面相同,只需要殺死一個窗口,而不是全部三個。

可能性?

  1. 是否可以在啟動視窗時為其命名,以便稍後引用該名稱?

答案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

這需要兩個步驟:

  1. 找到 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
    
  2. 透過PID殺死進程:

    taskkill /F /PID %ourPID%
    

相關內容