# batManage项目说明文档 ## 项目概述 batManage是一个脚本管理与执行工具,主要用于对批处理脚本(.bat)和Python脚本(.py)进行统一管理、运行监控和日志记录,支持单次脚本运行模式,具备进程状态检测、重复启动防护等功能。 ## 核心功能 1. **脚本运行管理** - 支持.bat和.py两种类型脚本的启动执行 - 防止脚本重复运行(通过内存记录和系统进程检测双重校验) - 实时捕获脚本输出并记录日志 2. **进程监控** - 维护运行中脚本的进程列表 - 实时检测进程状态,处理进程结束后的资源清理 - 异常处理与日志记录 3. **日志管理** - 记录脚本启动、运行状态、结束信息 - 捕获脚本输出内容并写入日志 - 记录错误信息与异常情况 ## 关键模块说明 ### 脚本启动模块(start_single_run_script函数) 该函数是项目核心功能实现,主要流程包括: 1. **运行状态检查** - 检查内存中是否已有记录的运行进程 - 检测系统中是否存在对应脚本的运行进程 2. **脚本合法性验证** - 检查脚本文件是否存在 - 验证脚本类型是否支持(仅支持.bat和.py) 3. **命令构建** - 对.bat脚本:使用`cmd /c`命令执行 - 对.py脚本:使用配置的Python路径执行(默认使用"python") 4. **异步执行** - 通过线程异步执行脚本,避免阻塞主程序 - 实时读取脚本输出并记录 - 处理脚本执行完成后的状态记录与资源清理 ## 技术实现细节 - 使用`subprocess.Popen`创建子进程执行脚本 - 通过`threading.Thread`实现异步执行 - 使用进程返回码判断脚本执行结果(0为成功,非0为失败) - 采用字典`running_processes`维护内存中的进程记录 - 提供`save_processes`方法持久化进程信息(具体实现未展示) ## 项目结构 ``` batManage/ ├── app.py # 核心功能实现 ├── tasks/ # 脚本存放目录 │ ├── 1.bat │ ├── 3.bat │ └── 文件编码检测.py ├── templates/ # 前端模板目录 │ └── index.html ├── .idea/ # 项目配置目录 └── config.json # 配置文件 ``` ## 使用说明 1. 将需要管理的脚本放入tasks目录 2. 通过调用`start_single_run_script(script_name)`启动脚本 3. 系统会自动处理脚本运行过程中的监控与日志记录 ## 注意事项 - 确保脚本路径正确,且具有可执行权限 - 对于Python脚本,可在配置中指定特定的Python解释器路径 - 系统会自动处理进程异常退出的情况,并清理相关记录 ## 扩展建议 1. 增加定时任务功能,支持脚本周期性执行 2. 完善前端界面,提供可视化的脚本管理与监控 3. 增加脚本执行权限管理,限制特定脚本的运行权限 4. 实现脚本执行历史记录查询与统计分析功能