自己也是学习好久
亲测好用 一段简单代码就能同步文件。
当个记录吧
前提准备
切记!!如果路径有中文,txt文件编码要改成UTF-8!!!切记!!如果路径有中文,txt文件编码要改成UTF-8!!!切记!!如果路径有中文,txt文件编码要改成UTF-8!!!切记!!如果路径有中文,txt文件编码要改成UTF-8!!!切记!!如果路径有中文,txt文件编码要改成UTF-8!!!
电脑先安装winscp
下一步新建一个TXT文档,位置随意。
TXT内容如下
option batch continue #默认批处理
option confirm off #无需确认直接操作
option transfer binary #二进制传输
option synchdelete on #服务端如果没有该文件,则将本地文件删除
open ftp://用户:密码@ftp地址:端口号 如果有加密 请在后面输入-implicit
cd /FTP目录
lcd 本地盘符:\文件夹
synchronize local #( 相当于rsync,将有差异的数据由服务器端同步到本地。local:同步到本地。remote:同步到对端)
close
exit
如需排除某个文件夹请在synchronize local 后面加上 -filemask="| 文件夹名称/;
举例:
synchronize local -filemask="| test/;
只传输昨天和今天最新文件。
-filemask=">=yesterday;|
这样就可以在同步的时候排除掉不想要的文件夹。
网上一堆教程都是说的不清不楚!
自己也琢磨了很久!!!
编写 WINSCP.bat 批处理文件,将winscp脚本放在一起批量执行,适合大量服务器同步
start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=e:\脚本\bak.txt
start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=e:\脚本\bak2.txt
start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=e:\脚本\bak3.txt
start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=e:\脚本\bak3.txt /logsize=10MB /log=d:\logs\%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.info
#执行完成后生成日志,在D盘LOGS文件夹,每天生成一次日志
把WINSCP.bat加入任务计划就可以每天定时下载服务器的文件了。
切记!!如果路径有中文,txt文件编码要改成UTF-8!!!
如果运行闪退就把脚本TXT文件改为ANSI编码!!!!