Как закрыть определенное окно Java с помощью bat?

Как закрыть определенное окно Java с помощью bat?

У меня есть bat, который запускает 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. Taskkill по PIDtaskkill /PID #### Проблема:ПИД не является постоянным.

  2. Уничтожение всех процессов из Javataskkill /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%
    

Связанный контент