Winscp搭配批处理实现FTP文件定时自动备份

原创 小姚  2026-05-18 16:13  阅读 9 次

Winscp是一款开源的图形化文件传输ftp软件,主要运行于Windows操作系统,支持SFTP、SCP、FTP、S3及WebDAV等多种协议。

下载地址:https://pan.quark.cn/s/5c12d67e7188

Winscp搭配批处理实现FTP文件定时自动备份-小姚工作室

Winscp厉害的点在于可以搭配批处理脚本来实现自动备份,这里分享一段用于备份多台ftp指定文件夹的代码。

首先要安装Winscp软件,新建一个记事本

一  、复制如下批处理,另存为backup.bat

@echo off
setlocal enabledelayedexpansion

:: ================= 配置区域 =================
:: 设置 WinSCP 的安装路径
set WINSCP_PATH="C:\Program Files (x86)\WinSCP\WinSCP.com"
:: 设置刚才创建的服务器列表文件名
set LIST_FILE=server_list.txt
:: ===========================================

echo 开始批量下载任务...
echo.

:: 逐行读取 server_list.txt 中的内容
for /f "usebackq tokens=1-6 delims=," %%a in ("%LIST_FILE%") do (
set FTP_HOST=%%a
set FTP_PORT=%%b
set FTP_USER=%%c
set FTP_PASS=%%d
set REMOTE_PATH=%%e
set LOCAL_PATH=%%f

echo [正在处理] 服务器: !FTP_HOST! ...

:: 调用 WinSCP 执行下载 (二进制模式 + 被动模式)
%WINSCP_PATH% /log="winscp_batch.log" /ini=nul /command ^
"option batch abort" ^
"option confirm off" ^
"option transfer binary" ^
"open ftp://!FTP_USER!:!FTP_PASS!@!FTP_HOST!:!FTP_PORT!" ^
"get !REMOTE_PATH!* !LOCAL_PATH!" ^
"exit"

if !errorlevel! equ 0 (
echo [成功] 服务器 !FTP_HOST! 下载完成!
) else (
echo [失败] 服务器 !FTP_HOST! 下载出错,请查看日志!
)
echo.
)

echo 所有服务器的遍历任务已执行完毕。
pause

 

二 、新建server_list.txt,主要包含IP,端口号,用户名,密码,远程路径,本地路径

199.171.118.109,21,target,password,/LOG_STORAGE/OPR_LOG,D:\D2500-7618
199.171.118.111,21,target,password,/LOG_STORAGE/OPR_LOG,D:\D2500-7354

......

运行backup.bat效果,依次备份server_list.txt里面的服务器路径到本地的制定文件夹。

本文地址:https://www.xiaoyaogzs.com/4123.html
关注我们:请关注一下我们的微信公众号:扫描二维码小姚工作室的公众号,公众号:小姚户外
版权声明:本文为原创文章,版权归 小姚 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

发表评论


表情