@echo off chcp 65001 >nul REM ============================================================ REM 自动任务调度脚本启动器 REM ============================================================ REM 功能:启动核心任务调度脚本 auto_execute_tasks.py REM 支持前台运行、后台运行、Agent模式、自动部署等多种模式 REM ============================================================ setlocal enabledelayedexpansion REM 切换到项目根目录 cd /d %~dp0.. echo. echo ======================================================== echo 自动任务调度脚本启动器 v2.0 echo ======================================================== echo. REM 检查 Python 是否安装 python --version >nul 2>&1 if errorlevel 1 ( echo [错误] 未找到 Python,请先安装 Python pause exit /b 1 ) REM 检查脚本文件是否存在 if not exist "scripts\auto_execute_tasks.py" ( echo [错误] 未找到脚本文件: scripts\auto_execute_tasks.py pause exit /b 1 ) REM 检查项目配置文件是否存在 if not exist "app\config\config.py" ( echo [错误] 未找到项目配置文件: app\config\config.py pause exit /b 1 ) REM 创建必要的目录 if not exist "logs" mkdir logs if not exist "tasks" mkdir tasks echo [信息] 当前目录: %cd% echo. echo ======================================================== echo 请选择运行模式 echo ======================================================== echo. echo 【基础模式】 echo 1. 前台运行 (实时日志) echo 2. 后台运行 (日志写入文件) echo 3. 单次执行 (执行一次后退出) echo. echo 【Agent 自动化模式】(推荐) echo 4. Agent 循环模式 (自动启动/关闭 Agent) echo 5. Agent 单次执行 (执行一次任务) echo 6. Agent 循环模式 + 禁用自动部署 echo. echo 【传统 Chat 模式】 echo 7. Chat 循环模式 (定期发送消息) echo 8. 立即发送 Chat 消息 echo. echo 【部署功能】 echo 9. 测试生产服务器连接 echo 10. 立即部署指定任务 echo. echo 【管理功能】 echo 11. 查看服务状态 echo 12. 停止后台服务 echo. echo 0. 退出 echo ======================================================== echo. set /p choice="请输入选择 [0-12]: " if "%choice%"=="1" goto :run_foreground if "%choice%"=="2" goto :run_background if "%choice%"=="3" goto :run_once if "%choice%"=="4" goto :run_agent_loop if "%choice%"=="5" goto :run_agent_once if "%choice%"=="6" goto :run_agent_no_deploy if "%choice%"=="7" goto :run_chat_loop if "%choice%"=="8" goto :send_chat_now if "%choice%"=="9" goto :test_connection if "%choice%"=="10" goto :deploy_now if "%choice%"=="11" goto :check_status if "%choice%"=="12" goto :stop_service if "%choice%"=="0" goto :exit echo [错误] 无效的选择,请重新运行 pause exit /b 1 REM ============================================================ REM 基础模式 REM ============================================================ :run_foreground echo. echo ======================================================== echo 前台运行模式 echo ======================================================== echo [启动] 检查间隔: 5分钟 echo [提示] 按 Ctrl+C 可停止服务 echo ======================================================== echo. python scripts\auto_execute_tasks.py --interval 300 pause goto :exit :run_background echo. echo ======================================================== echo 后台运行模式 echo ======================================================== echo [启动] 检查间隔: 5分钟 echo [信息] 日志输出到: logs\auto_execute.log echo ======================================================== start /B "" python scripts\auto_execute_tasks.py --interval 300 > logs\auto_execute.log 2>&1 echo. echo [成功] 服务已在后台启动! echo. echo [提示] 相关命令: echo - 查看日志: type logs\auto_execute.log echo - 停止服务: 再次运行此脚本选择 12 echo. pause goto :exit :run_once echo. echo ======================================================== echo 单次执行模式 echo ======================================================== echo [执行] 检查一次 pending 任务后退出 echo ======================================================== echo. python scripts\auto_execute_tasks.py --once echo. pause goto :exit REM ============================================================ REM Agent 自动化模式 (推荐) REM ============================================================ :run_agent_loop echo. echo ======================================================== echo Agent 循环模式 (推荐) echo ======================================================== echo [功能] 自动启动/关闭 Agent,自动部署到生产服务器 echo [间隔] 任务检查: 60秒, Agent超时: 3600秒 echo [提示] 按 Ctrl+C 可停止服务 echo ======================================================== echo. python scripts\auto_execute_tasks.py --chat-loop --use-agent pause goto :exit :run_agent_once echo. echo ======================================================== echo Agent 单次执行模式 echo ======================================================== echo [功能] 启动 Agent 执行一次任务后退出 echo [超时] 3600秒 (1小时) echo ======================================================== echo. python scripts\auto_execute_tasks.py --agent-run pause goto :exit :run_agent_no_deploy echo. echo ======================================================== echo Agent 循环模式 (禁用自动部署) echo ======================================================== echo [功能] 自动启动/关闭 Agent,但不自动部署 echo [间隔] 任务检查: 60秒, Agent超时: 3600秒 echo [提示] 按 Ctrl+C 可停止服务 echo ======================================================== echo. python scripts\auto_execute_tasks.py --chat-loop --use-agent --no-deploy pause goto :exit REM ============================================================ REM 传统 Chat 模式 REM ============================================================ :run_chat_loop echo. echo ======================================================== echo Chat 循环模式 (传统) echo ======================================================== echo [功能] 定期发送 Chat 消息提醒执行任务 echo [间隔] 60秒 echo [提示] 需要手动在 Cursor 中响应 echo ======================================================== echo. set /p chat_pos="请输入 Chat 输入框位置 (格式: x,y,直接回车使用默认): " echo. if "%chat_pos%"=="" ( python scripts\auto_execute_tasks.py --chat-loop --no-agent ) else ( python scripts\auto_execute_tasks.py --chat-loop --no-agent --chat-input-pos "%chat_pos%" ) pause goto :exit :send_chat_now echo. echo ======================================================== echo 立即发送 Chat 消息 echo ======================================================== echo [功能] 立即发送一次 Chat 消息到 Cursor echo ======================================================== echo. python scripts\auto_execute_tasks.py --send-chat-now echo. pause goto :exit REM ============================================================ REM 部署功能 REM ============================================================ :test_connection echo. echo ======================================================== echo 测试生产服务器连接 echo ======================================================== echo [功能] 测试 SSH 连接到生产服务器 echo ======================================================== echo. python scripts\auto_execute_tasks.py --test-connection echo. pause goto :exit :deploy_now echo. echo ======================================================== echo 立即部署指定任务 echo ======================================================== echo. set /p task_id="请输入要部署的任务 ID: " if "%task_id%"=="" ( echo [错误] 任务 ID 不能为空 pause goto :exit ) echo. echo [部署] 任务 ID: %task_id% echo ======================================================== echo. python scripts\auto_execute_tasks.py --deploy-now %task_id% echo. pause goto :exit REM ============================================================ REM 管理功能 REM ============================================================ :check_status echo. echo ======================================================== echo 服务状态检查 echo ======================================================== echo. echo [进程状态] powershell -Command "$processes = Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*auto_execute_tasks.py*' }; if ($processes) { Write-Host '[运行中] 找到以下进程:' -ForegroundColor Green; $processes | ForEach-Object { Write-Host (' 进程ID: ' + $_.ProcessId + ' | 启动时间: ' + $_.CreationDate) } } else { Write-Host '[未运行] 未找到 auto_execute_tasks.py 进程' -ForegroundColor Yellow }" echo. echo ======================================================== echo 最近日志 - 最后 30 行 echo ======================================================== echo. if exist "logs\auto_execute.log" ( powershell -Command "Get-Content logs\auto_execute.log -Tail 30 -ErrorAction SilentlyContinue" ) else ( echo [提示] 日志文件不存在: logs\auto_execute.log ) echo. echo ======================================================== echo pending_tasks.json 状态 echo ======================================================== echo. if exist "tasks\pending_tasks.json" ( echo [文件存在] tasks\pending_tasks.json powershell -Command "$tasks = Get-Content 'tasks\pending_tasks.json' -Raw -ErrorAction SilentlyContinue | ConvertFrom-Json; if ($tasks) { Write-Host (' 任务数量: ' + $tasks.Count); $tasks | ForEach-Object { Write-Host (' - [' + $_.task_id + '] ' + $_.task_name + ' (' + $_.status + ')') } } else { Write-Host ' [空] 没有待处理任务' }" ) else ( echo [提示] pending_tasks.json 不存在 ) echo. echo ======================================================== echo 任务执行指令文件 echo ======================================================== echo. if exist "tasks\task_execute_instructions.md" ( echo [文件存在] tasks\task_execute_instructions.md powershell -Command "$content = Get-Content 'tasks\task_execute_instructions.md' -Raw -ErrorAction SilentlyContinue; if ($content) { $lines = $content -split '`n'; Write-Host (' 行数: ' + $lines.Count); Write-Host ' 前 10 行:'; $lines | Select-Object -First 10 | ForEach-Object { Write-Host (' ' + $_) } } else { Write-Host ' [空文件]' }" ) else ( echo [提示] task_execute_instructions.md 不存在 ) echo. pause goto :exit :stop_service echo. echo ======================================================== echo 停止后台服务 echo ======================================================== echo. powershell -Command "$processes = Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*auto_execute_tasks.py*' }; if ($processes) { Write-Host '[找到] 以下进程将被停止:' -ForegroundColor Yellow; $processes | ForEach-Object { Write-Host (' 进程ID: ' + $_.ProcessId); Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }; Write-Host '[完成] 进程已停止' -ForegroundColor Green } else { Write-Host '[提示] 未找到运行中的进程' -ForegroundColor Cyan }" echo. pause goto :exit :exit endlocal exit /b 0