上传文件部署2

内容纲要
@echo off
rem 设置代码页为 UTF-8,确保中文显示正常
chcp 65001
setlocal EnableDelayedExpansion

rem 定义远程服务器和用户
set REMOTE_HOST=
set REMOTE_USER=root

rem 定义远程脚本目录
set REMOTE_SCRIPT_DIR=/data/srt2/app

rem 定义文件上传列表
set FILES[0].LOCAL=C:\Users\Documents\temp\sp81900.exe
set FILES[0].REMOTE=/data/temp/
set FILES[1].LOCAL=F:\安装包\Apifox-windows-latest.zip
set FILES[1].REMOTE=/data/srt2/

rem 获取文件数量
set NUM_FILES=2

rem 输出变量以确认赋值正确
echo REMOTE_HOST: %REMOTE_HOST%
echo REMOTE_USER: %REMOTE_USER%
echo REMOTE_SCRIPT_DIR: %REMOTE_SCRIPT_DIR%
echo.
for /l %%i in (0,1,%NUM_FILES%-1) do (
  echo FILE[%%i].LOCAL: !FILES[%%i].LOCAL!
  echo FILE[%%i].REMOTE: !FILES[%%i].REMOTE!
)
echo.
pause

goto :main

:upload
echo --- Entering upload subroutine ---
echo Parameter1 (Local File): %1
echo Parameter2 (Remote Dir): %2
echo Uploading "%~1" to %REMOTE_USER%@%REMOTE_HOST%:"%~2"
scp "%~1" %REMOTE_USER%@%REMOTE_HOST%:"%~2"
if errorlevel 1 (
    echo Failed to upload "%~1" to %REMOTE_USER%@%REMOTE_HOST%:"%~2"!
    exit /b 1
)
goto :eof

:main
for /l %%i in (0,1,%NUM_FILES%-1) do (
  call :upload "!FILES[%%i].LOCAL!" "!FILES[%%i].REMOTE!"
)

echo Executing remote script...
ssh %REMOTE_USER%@%REMOTE_HOST% "cd %REMOTE_SCRIPT_DIR% && ./start.sh"
if errorlevel 1 (
    echo Remote script execution failed!
    exit /b 1
)

echo All operations completed!
pause
exit /b 0

endlocal

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注