[Powershell]bat 中启动程序及进程检测

发布时间:2026/7/18 4:51:48
[Powershell]bat 中启动程序及进程检测 如何用.bat文件给一个exe写启动程序以下是Windows 批处理.bat编写exe启动程序的通用模板可直接保存为.bat文件运行1. 基础启动模板batecho off chcp 65001 nul :: 解决中文乱码 title 启动 [你的程序名] :: 设置cmd窗口标题 :: 切换到exe所在目录如果bat和exe不在同一目录需填写绝对路径 cd /d %~dp0 :: 启动exe程序 start 你的程序.exe :: 可选启动后保持cmd窗口方便查看日志不加则启动后窗口自动关闭 pause2. 带参数启动模板如果exe需要传入命令行参数格式如下batecho off chcp 65001 nul title 带参数启动程序 cd /d %~dp0 :: 格式start 程序路径.exe 参数1 参数2 start test.exe -mode debug -config config.ini pause3. 启动前检查文件是否存在避免exe缺失导致报错batecho off chcp 65001 nul title 启动程序带文件检查 set EXE_PATH%~dp0test.exe :: 检查exe是否存在 if not exist %EXE_PATH% ( echo 错误未找到程序文件 %EXE_PATH% pause exit /b 1 ) :: 启动程序 start %EXE_PATH% echo 程序已成功启动 pause使用说明将上述模板中的你的程序.exe替换为实际exe文件名若.bat和exe不在同一文件夹将%~dp0替换为exe的绝对路径如D:\project\test.exe双击.bat文件即可启动exe是否需要我帮你写一个带日志输出功能的启动脚本方便调试程序运行状态启动的时候检查是否有同名进程启动了把历史同名进程都杀掉以下是带同名进程检测与强制关闭功能的.bat启动脚本可直接使用batecho off chcp 65001 nul title 启动程序进程检测清理 :: ************************* 配置区 ************************* set EXE_NAME你的程序.exe :: 替换为目标exe文件名 set EXE_PATH%~dp0%EXE_NAME :: 自动拼接路径bat和exe同目录时无需修改 :: ********************************************************** :: 1. 检测并关闭同名进程 echo [INFO] 正在检测同名进程 [%EXE_NAME%]... taskkill /f /im %EXE_NAME% nul 21 if %errorlevel% equ 0 ( echo [INFO] 已强制关闭历史同名进程 ) else ( echo [INFO] 未检测到同名进程无需清理 ) :: 2. 检查exe文件是否存在 if not exist %EXE_PATH% ( echo [ERROR] 未找到程序文件: %EXE_PATH% pause exit /b 1 ) :: 3. 启动程序 echo [INFO] 正在启动程序: %EXE_NAME% start %EXE_PATH% echo [INFO] 程序启动完成 :: 可选注释掉下面一行启动后自动关闭cmd窗口 pause使用说明将set EXE_NAME你的程序.exe中的你的程序.exe替换为实际程序文件名若.bat和exe不在同一目录直接修改EXE_PATH为绝对路径如set EXE_PATHD:\project\test.exetaskkill /f为强制关闭进程避免程序卡死无法退出