特定の Java ウィンドウを bat で閉じるにはどうすればよいでしょうか?

特定の Java ウィンドウを bat で閉じるにはどうすればよいでしょうか?

次のように 3 つの別々の Java ウィンドウを起動する bat があります。

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. PID による Taskkilltaskkill /PID #### 問題:PIDは一定ではありません。

  2. Javaからすべてのプロセスを強制終了するtaskkill /IM java.exe 問題:停止したくないJavaウィンドウが他に2つあります

  3. イメージ名ですべてのプロセスを強制終了します:taskkill /IM java 問題:上記と同じですが、3 つのウィンドウすべてではなく、1 つのウィンドウのみを終了する必要があります。

可能性は?

  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

これには 2 つの手順が必要です。

  1. PIDを見つける(このスレッドから取得)https://serverfault.com/questions/126502/windows でコマンドプロンプトから独自のプロセス PID を取得する方法:

    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%
    

関連情報