@echo off chcp 65001 > nul setlocal enabledelayedexpansion set "CURRENT_DIR=%~dp0" :: 核心配置 set "TARGET_JARS=yjearth.jar geographysdk.jar" set "JPS_EXE=%CURRENT_DIR%jdk\bin\jps.exe" set "TEMP_FILE=%temp%\jps_output.txt" :: 检查jps可用性 if not exist "!JPS_EXE!" ( echo 错误:未找到jps.exe(!JPS_EXE!) endlocal && pause && exit /b 1 ) :: 获取Java进程列表 "!JPS_EXE!" -l > "!TEMP_FILE!" 2>nul echo 正在查找运行中的进程... :: 循环停止目标JAR for %%J in (!TARGET_JARS!) do ( set "PID=" echo. && echo 查找 %%J 进程... :: 匹配进程ID for /f "tokens=1,2" %%a in ('type "!TEMP_FILE!"') do ( echo "%%b" | findstr /i "%%J" >nul && set "PID=%%a" ) :: 终止逻辑 if defined PID ( taskkill /pid !PID! /f > nul 2>&1 if !errorlevel! equ 0 (echo 成功终止 %%J(PID:!PID!)) else (echo 终止 %%J(PID:!PID!)失败) ) else (echo 未找到运行中的 %%J 进程) ) :: 清理临时文件 del "!TEMP_FILE!" >nul 2>&1 echo. && echo 操作完成 endlocal && pause