IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    将本地 Windows 文件夹同步到远程服务器

    血衫非弧の一存发表于 2024-09-04 00:00:00
    love 0

    这个脚本使用 PSCP 和 Plink 工具,PSCP 用于文件传输,Plink 可以用来执行远程命令。确保已安装 PuTTY 工具包中的 PSCP 和 Plink 工具,并将其路径添加到系统的环境变量中。

    @echo off
    
    :: 定义本地文件夹和远程服务器信息
    set LOCAL_DIR=C:\Workspace\online\
    set REMOTE_SERVER=user@1.2.3.4
    set REMOTE_DIR=/kelutmp
    set PASSWORD=password
    
    :: 检查本地文件夹是否存在
    if not exist "%LOCAL_DIR%" (
        echo Local directory does not exist: %LOCAL_DIR%
        exit /b
    )
    
    :: 检查本地文件夹是否为空
    for /F "delims=" %%F in ('dir /b "%LOCAL_DIR%"') do set NON_EMPTY=1
    if not defined NON_EMPTY (
        echo Local directory is empty: %LOCAL_DIR%
        exit /b
    )
    
    set FILE_COUNT=0
    for /r "%LOCAL_DIR%" %%f in (*) do set /a FILE_COUNT+=1
    
    if "%FILE_COUNT%"=="0" (
        echo Local directory is empty: %LOCAL_DIR%
        exit /b
    )
    
    :: 使用 pscp 将本地文件夹中的所有文件同步到远程服务器
    pscp -r -pw "%PASSWORD%" "%LOCAL_DIR%*" %REMOTE_SERVER%:%REMOTE_DIR%
    
    :: 如果同步成功,清空本地文件夹
    if %errorlevel%==0 (
        echo Sync successful, clearing local directory: %LOCAL_DIR%
        rmdir /s /q "%LOCAL_DIR%"
        mkdir "%LOCAL_DIR%"
    ) else (
        echo Sync failed, local directory not cleared.
    )
    


沪ICP备19023445号-2号
友情链接