1 votes

Comment fermer une fenêtre java spécifique avec un bat ?

J'ai un bat qui démarre 3 fenêtres java séparées comme suit :

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

J'ai besoin d'une commande bat qui ferme UNIQUEMENT Le fichier _the_jar_I_want_to_close_.jar. Malheureusement, la seule chose qui différencie ces Windows est le PID, mais le PID change à chaque fois qu'ils sont lancés.

Voici ce que j'ai essayé

  1. Exécution des tâches par PID taskkill /PID #### Problème : Le PID n'est pas constant.

  2. Tuer tous les processus à partir de java taskkill /IM java.exe Problème : Il y a 2 autres Windows java que je ne veux pas arrêter

  3. Tuer tous les processus par nom d'image : taskkill /IM java Problème : Même chose que ci-dessus, il suffit de tuer une fenêtre, pas les trois.

Possibilités ?

  1. Est-il possible de nommer les fenêtres lorsque je les démarre, afin de pouvoir faire référence à ce nom ultérieurement ?

1voto

Tatiana Didik Points 111

Cela se fait en deux étapes :

  1. Trouver le PID (tiré de ce fil) 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. Tuer le processus par PID :

    taskkill /F /PID %ourPID%

1voto

iTwasnTme Points 5586

Pourquoi ne pas utiliser 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"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X