167 linhas
3.7 KiB
Batchfile
167 linhas
3.7 KiB
Batchfile
@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
|