@echo off chcp 65001 >nul title FTP Server 服务管理 :: 配置区域 - 请根据实际路径修改 set FTP_HOME=%~dp0 set FTP_EXE=%FTP_HOME%ftp-server.exe set SERVICE_NAME=FTP-Server set CONFIG_FILE=%FTP_HOME%config.json :: 检查管理员权限 net session >nul 2>&1 if %errorlevel% neq 0 ( echo [错误] 请以管理员身份运行此脚本! echo 右键点击脚本 -^> "以管理员身份运行" pause exit /b 1 ) :: 检查可执行文件 if not exist "%FTP_EXE%" ( echo [错误] 找不到 %FTP_EXE% echo 请确保 ftp-server.exe 在脚本同目录下 pause exit /b 1 ) :menu cls echo ======================================== echo FTP Server 服务管理工具 echo ======================================== echo. echo 1. 安装服务 (注册为 Windows 服务) echo 2. 卸载服务 echo 3. 启动服务 echo 4. 停止服务 echo 5. 重启服务 echo 6. 查看服务状态 echo 7. 开机自启 - 开启 echo 8. 开机自启 - 关闭 echo 9. 查看运行日志 echo 0. 退出 echo. set /p choice=请输入选项: if "%choice%"=="1" goto install if "%choice%"=="2" goto uninstall if "%choice%"=="3" goto start if "%choice%"=="4" goto stop if "%choice%"=="5" goto restart if "%choice%"=="6" goto status if "%choice%"=="7" goto enable if "%choice%"=="8" goto disable if "%choice%"=="9" goto logs if "%choice%"=="0" exit /b 0 echo 无效选项 pause goto menu :install echo [信息] 正在安装服务... sc create %SERVICE_NAME% binPath= "%FTP_EXE% -config %CONFIG_FILE%" start= demand DisplayName= "FTP Server with Web Management" if %errorlevel% equ 0 ( echo [成功] 服务安装成功! echo [信息] 使用选项 3 启动服务,或选项 7 设置开机自启 ) else ( echo [失败] 服务安装失败 ) pause goto menu :uninstall echo [信息] 正在停止服务... net stop %SERVICE_NAME% >nul 2>&1 echo [信息] 正在卸载服务... sc delete %SERVICE_NAME% if %errorlevel% equ 0 ( echo [成功] 服务已卸载 ) else ( echo [失败] 服务卸载失败,可能服务不存在 ) pause goto menu :start echo [信息] 正在启动服务... net start %SERVICE_NAME% if %errorlevel% equ 0 ( echo [成功] 服务已启动 echo FTP端口: 2121 echo Web管理: http://localhost:8080 ) else ( echo [失败] 服务启动失败 ) pause goto menu :stop echo [信息] 正在停止服务... net stop %SERVICE_NAME% if %errorlevel% equ 0 ( echo [成功] 服务已停止 ) else ( echo [失败] 服务停止失败,可能服务未运行 ) pause goto menu :restart echo [信息] 正在重启服务... net stop %SERVICE_NAME% >nul 2>&1 timeout /t 2 /nobreak >nul net start %SERVICE_NAME% if %errorlevel% equ 0 ( echo [成功] 服务已重启 ) else ( echo [失败] 服务重启失败 ) pause goto menu :status echo [信息] 服务状态: sc query %SERVICE_NAME% echo. echo [信息] 服务配置: sc qc %SERVICE_NAME% pause goto menu :enable echo [信息] 正在设置开机自启... sc config %SERVICE_NAME% start= auto if %errorlevel% equ 0 ( echo [成功] 已设置开机自启 ) else ( echo [失败] 设置失败 ) pause goto menu :disable echo [信息] 正在关闭开机自启... sc config %SERVICE_NAME% start= demand if %errorlevel% equ 0 ( echo [成功] 已关闭开机自启 ) else ( echo [失败] 设置失败 ) pause goto menu :logs echo [信息] 最近的应用程序日志 (FTP Server): echo ======================================== wevtutil qe Application /q:"*[System[Provider[@Name='%SERVICE_NAME%']]]" /c:20 /f:text /rd:true if %errorlevel% neq 0 ( echo 暂无事件日志 echo. echo 提示: 可以直接查看控制台输出或重定向日志到文件: echo %FTP_EXE% ^> server.log 2^>^&1 ) echo ======================================== pause goto menu