service-windows.bat 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. @echo off
  2. chcp 65001 >nul
  3. title FTP Server 服务管理
  4. :: 配置区域 - 请根据实际路径修改
  5. set FTP_HOME=%~dp0
  6. set FTP_EXE=%FTP_HOME%ftp-server.exe
  7. set SERVICE_NAME=FTP-Server
  8. set CONFIG_FILE=%FTP_HOME%config.json
  9. :: 检查管理员权限
  10. net session >nul 2>&1
  11. if %errorlevel% neq 0 (
  12. echo [错误] 请以管理员身份运行此脚本!
  13. echo 右键点击脚本 -^> "以管理员身份运行"
  14. pause
  15. exit /b 1
  16. )
  17. :: 检查可执行文件
  18. if not exist "%FTP_EXE%" (
  19. echo [错误] 找不到 %FTP_EXE%
  20. echo 请确保 ftp-server.exe 在脚本同目录下
  21. pause
  22. exit /b 1
  23. )
  24. :menu
  25. cls
  26. echo ========================================
  27. echo FTP Server 服务管理工具
  28. echo ========================================
  29. echo.
  30. echo 1. 安装服务 (注册为 Windows 服务)
  31. echo 2. 卸载服务
  32. echo 3. 启动服务
  33. echo 4. 停止服务
  34. echo 5. 重启服务
  35. echo 6. 查看服务状态
  36. echo 7. 开机自启 - 开启
  37. echo 8. 开机自启 - 关闭
  38. echo 9. 查看运行日志
  39. echo 0. 退出
  40. echo.
  41. set /p choice=请输入选项:
  42. if "%choice%"=="1" goto install
  43. if "%choice%"=="2" goto uninstall
  44. if "%choice%"=="3" goto start
  45. if "%choice%"=="4" goto stop
  46. if "%choice%"=="5" goto restart
  47. if "%choice%"=="6" goto status
  48. if "%choice%"=="7" goto enable
  49. if "%choice%"=="8" goto disable
  50. if "%choice%"=="9" goto logs
  51. if "%choice%"=="0" exit /b 0
  52. echo 无效选项
  53. pause
  54. goto menu
  55. :install
  56. echo [信息] 正在安装服务...
  57. sc create %SERVICE_NAME% binPath= "%FTP_EXE% -config %CONFIG_FILE%" start= demand DisplayName= "FTP Server with Web Management"
  58. if %errorlevel% equ 0 (
  59. echo [成功] 服务安装成功!
  60. echo [信息] 使用选项 3 启动服务,或选项 7 设置开机自启
  61. ) else (
  62. echo [失败] 服务安装失败
  63. )
  64. pause
  65. goto menu
  66. :uninstall
  67. echo [信息] 正在停止服务...
  68. net stop %SERVICE_NAME% >nul 2>&1
  69. echo [信息] 正在卸载服务...
  70. sc delete %SERVICE_NAME%
  71. if %errorlevel% equ 0 (
  72. echo [成功] 服务已卸载
  73. ) else (
  74. echo [失败] 服务卸载失败,可能服务不存在
  75. )
  76. pause
  77. goto menu
  78. :start
  79. echo [信息] 正在启动服务...
  80. net start %SERVICE_NAME%
  81. if %errorlevel% equ 0 (
  82. echo [成功] 服务已启动
  83. echo FTP端口: 2121
  84. echo Web管理: http://localhost:8080
  85. ) else (
  86. echo [失败] 服务启动失败
  87. )
  88. pause
  89. goto menu
  90. :stop
  91. echo [信息] 正在停止服务...
  92. net stop %SERVICE_NAME%
  93. if %errorlevel% equ 0 (
  94. echo [成功] 服务已停止
  95. ) else (
  96. echo [失败] 服务停止失败,可能服务未运行
  97. )
  98. pause
  99. goto menu
  100. :restart
  101. echo [信息] 正在重启服务...
  102. net stop %SERVICE_NAME% >nul 2>&1
  103. timeout /t 2 /nobreak >nul
  104. net start %SERVICE_NAME%
  105. if %errorlevel% equ 0 (
  106. echo [成功] 服务已重启
  107. ) else (
  108. echo [失败] 服务重启失败
  109. )
  110. pause
  111. goto menu
  112. :status
  113. echo [信息] 服务状态:
  114. sc query %SERVICE_NAME%
  115. echo.
  116. echo [信息] 服务配置:
  117. sc qc %SERVICE_NAME%
  118. pause
  119. goto menu
  120. :enable
  121. echo [信息] 正在设置开机自启...
  122. sc config %SERVICE_NAME% start= auto
  123. if %errorlevel% equ 0 (
  124. echo [成功] 已设置开机自启
  125. ) else (
  126. echo [失败] 设置失败
  127. )
  128. pause
  129. goto menu
  130. :disable
  131. echo [信息] 正在关闭开机自启...
  132. sc config %SERVICE_NAME% start= demand
  133. if %errorlevel% equ 0 (
  134. echo [成功] 已关闭开机自启
  135. ) else (
  136. echo [失败] 设置失败
  137. )
  138. pause
  139. goto menu
  140. :logs
  141. echo [信息] 最近的应用程序日志 (FTP Server):
  142. echo ========================================
  143. wevtutil qe Application /q:"*[System[Provider[@Name='%SERVICE_NAME%']]]" /c:20 /f:text /rd:true
  144. if %errorlevel% neq 0 (
  145. echo 暂无事件日志
  146. echo.
  147. echo 提示: 可以直接查看控制台输出或重定向日志到文件:
  148. echo %FTP_EXE% ^> server.log 2^>^&1
  149. )
  150. echo ========================================
  151. pause
  152. goto menu