박쥐로 특정 Java 창을 닫는 방법은 무엇입니까?

박쥐로 특정 Java 창을 닫는 방법은 무엇입니까?

다음과 같이 3개의 별도 Java 창을 시작하는 박쥐가 있습니다.

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

닫는 배트 명령이 필요합니다오직_the_jar_I_want_to_close_.jar. 불행하게도 이러한 창을 구별하는 유일한 것은 PID이지만 PID는 창을 시작할 때마다 변경됩니다.

내가 시도한 것은 다음과 같습니다.

  1. PID에 의한 Taskkilltaskkill /PID #### 문제:PID가 일정하지 않습니다.

  2. Java에서 모든 프로세스 종료taskkill /IM java.exe 문제:중지하고 싶지 않은 다른 Java 창이 2개 있습니다.

  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%
    

관련 정보