| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- @echo off
- chcp 65001 >nul 2>&1
- title FTP Server
- :: ============================
- :: FTP Server 启动/停止脚本 (Windows)
- :: ============================
- set "APP_NAME=ftp-server"
- set "APP_EXE=%~dp0ftp-server.exe"
- set "CONFIG=%~dp0config.json"
- set "LOG_FILE=%~dp0ftp-server.log"
- set "PID_FILE=%~dp0ftp-server.pid"
- if "%1"=="" goto :usage
- if "%1"=="start" goto :start
- if "%1"=="stop" goto :stop
- if "%1"=="restart" goto :restart
- if "%1"=="status" goto :status
- goto :usage
- :: ---------- 启动 ----------
- :start
- if not exist "%APP_EXE%" (
- echo [错误] 未找到 %APP_EXE%
- echo 请先编译: go build -o ftp-server.exe ./cmd/
- exit /b 1
- )
- :: 检查是否已在运行
- tasklist /FI "IMAGENAME eq %APP_NAME%.exe" 2>nul | find /i "%APP_NAME%.exe" >nul
- if %errorlevel%==0 (
- echo [提示] %APP_NAME% 已经在运行中
- goto :status
- )
- echo [启动] 正在启动 %APP_NAME% ...
- start "%APP_NAME%" /MIN "%APP_EXE%" -config "%CONFIG%"
- :: 等待启动
- timeout /t 2 /nobreak >nul
- :: 检查是否启动成功
- tasklist /FI "IMAGENAME eq %APP_NAME%.exe" 2>nul | find /i "%APP_NAME%.exe" >nul
- if %errorlevel%==0 (
- echo [成功] %APP_NAME% 已启动
- echo Web 管理面板: http://localhost:8080
- echo FTP 端口: 2121
- ) else (
- echo [失败] %APP_NAME% 启动失败,请检查配置
- )
- goto :eof
- :: ---------- 停止 ----------
- :stop
- echo [停止] 正在停止 %APP_NAME% ...
- tasklist /FI "IMAGENAME eq %APP_NAME%.exe" 2>nul | find /i "%APP_NAME%.exe" >nul
- if %errorlevel%==0 (
- taskkill /F /IM "%APP_NAME%.exe" >nul 2>&1
- timeout /t 1 /nobreak >nul
- echo [成功] %APP_NAME% 已停止
- ) else (
- echo [提示] %APP_NAME% 未在运行
- )
- goto :eof
- :: ---------- 重启 ----------
- :restart
- call %0 stop
- timeout /t 2 /nobreak >nul
- call %0 start
- goto :eof
- :: ---------- 状态 ----------
- :status
- tasklist /FI "IMAGENAME eq %APP_NAME%.exe" 2>nul | find /i "%APP_NAME%.exe" >nul
- if %errorlevel%==0 (
- echo [状态] %APP_NAME% 正在运行
- for /f "tokens=2" %%a in ('tasklist /FI "IMAGENAME eq %APP_NAME%.exe" /NH 2^>nul') do (
- echo PID: %%a
- )
- ) else (
- echo [状态] %APP_NAME% 未运行
- )
- goto :eof
- :: ---------- 帮助 ----------
- :usage
- echo.
- echo 用法: %~nx0 {start^|stop^|restart^|status}
- echo.
- echo 命令:
- echo start 启动 FTP Server
- echo stop 停止 FTP Server
- echo restart 重启 FTP Server
- echo status 查看运行状态
- echo.
|