Вот что я использую:
@echo off
rem there is a tab in the file at the end of the line below
set tab=
set cmd=javaw -jar lib\MyProg.jar
set dir=%~dp0
echo Starting MyProg
set pid=notfound
for /F "usebackq tokens=1,2 delims=;=%tab% " %%i in (
`wmic process call create "%cmd%"^, "%dir%"`
) do (
if /I %%i EQU ProcessId (
set pid=%%j
)
)
echo %pid% > MyProg.pid
В качестве каталога задан каталог, в котором находится cmd-файл. Измените dir
, чтобы изменить его. Измените cmd
, чтобы изменить, какая команда выполняется.
Если вы хотите, чтобы файл stop.cmd убил его, он бы выглядел следующим образом
@echo off
for /F %%i in (%~dsp0MyProg.pid) do taskkill /F /PID %%i
del %~dsp0MyProg.pid