¿Cómo cerrar una ventana de Java específica con un murciélago?

¿Cómo cerrar una ventana de Java específica con un murciélago?

Tengo un murciélago que inicia 3 ventanas Java separadas así:

start java -jar somejar.jar
start java -jar _the_jar_I_want_to_close_.jar
start java -jar someotherjar.jar

Necesito un comando bat que cierreSOLO_el_jar_quiero_cerrar_.jar. Lamentablemente lo único que diferencia a estas ventanas es el PID, pero el PID cambia cada vez que se inician.

Esto es lo que he probado

  1. Taskkill por PIDtaskkill /PID #### Problema:El PID no es constante.

  2. Matando todos los procesos de Javataskkill /IM java.exe Problema:Hay otras 2 ventanas de Java que no quiero detener

  3. Eliminando todos los procesos por nombre de imagen:taskkill /IM java Problema:Igual que el anterior, solo es necesario cerrar una ventana, no las tres.

¿Posibilidades?

  1. ¿Es posible nombrar las ventanas cuando las inicio, para poder hacer referencia a ese nombre más adelante?

Respuesta1

¿Por qué no usar?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"

Respuesta2

Esto requiere dos pasos:

  1. Encuentra el PID (tomado de este hilohttps://serverfault.com/questions/126502/how-to-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. Mata el proceso por PID:

    taskkill /F /PID %ourPID%
    

información relacionada