Ich habe ein Bat, das drei separate Java-Fenster wie folgt startet:
start java -jar somejar.jar
start java -jar _the_jar_I_want_to_close_.jar
start java -jar someotherjar.jar
Ich brauche einen Bat-Befehl, der schließtNUR_das_JAR_das_ich_schließen_möchte_.jar. Leider ist das einzige, was diese Fenster unterscheidet, die PID, aber die PID ändert sich bei jedem Start.
Folgendes habe ich versucht
Taskkill von PID
taskkill /PID ####
Problem:Der PID ist nicht konstant.Beenden aller Prozesse von Java
taskkill /IM java.exe
Problem:Es gibt 2 andere Java-Fenster, die ich nicht stoppen möchteBeenden aller Prozesse anhand des Image-Namens:
taskkill /IM java
Problem:Wie oben, Sie müssen nur ein Fenster schließen, nicht alle drei.
Möglichkeiten?
- Ist es möglich, den Fenstern beim Starten einen Namen zu geben, sodass ich später auf diesen Namen verweisen kann?
Antwort1
Warum nicht verwendenstart "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"
Antwort2
Dies erfolgt in zwei Schritten:
Finden Sie die PID (aus diesem Thread entnommenhttps://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
Beenden Sie den Prozess durch PID:
taskkill /F /PID %ourPID%