Tasklist
покажет вам детали.
@ECHO OFF
SETLOCAL
SET "underline="
SET "mypid="
FOR /f "skip=2delims=" %%u IN ('tasklist/v') DO IF NOT DEFINED underline SET underline=%%u
FOR /f "delims=" %%u IN ('tasklist/v^|find /i "GPU Client"') DO IF NOT DEFINED mypid SET mypid=%%u
:loop
IF "%underline:~0,1%"=="=" SET underline=%underline:~1%&SET mypid=%mypid:~1%&GOTO loop
FOR %%u IN (%mypid%) DO IF DEFINED underline SET mypid=%%u&SET "underline="
echo Target process ID=%mypid%
GOTO :EOF
Это должно получить идентификатор процесса, готовый к TASKKILL
. Строку GPU Client
следует заменить единичной строкой, идентифицирующей процесс Java, который вы хотите завершить, и вы должны получить из списка tasklist
из приглашения.
tasklist /v
Длина подчеркивания появляющегося под отчетом заголовка tasklist /v
варьируется в зависимости от длины самого длинного названия задач, запущенных в данный момент, так что подчеркивание линии применяются к underline
, выбранной детали строка mypid
и затем первый символ каждой строки обрезается до тех пор, пока не будет найдено место в строке =
.
В это время mypid
будет иметь имя задачи, отстроенное, поэтому его первым токеном является PID.
В какой версии ms-dos работает java? – Mark