有的时候我们会将远程FTP上的文件同步到本地,通过运行我们编写的程序对文件进行一系统的操作,会产生一些输出文件,然后再将处理后的文件同步到远程FTP上.
针对上述中的远程文件同步到本地或本地文件同步到远程FTP上的情况,我们可以利用Winscp软件,执行一系列的FTP命令.winscp软件可在网上下载.
winscp的命令范例:
# winscp.exe /console /script=sample.txt # Automatically answer all prompts negatively not to stall # option batch on|off|abort|continue # option confirm on|off # option transfer binary|ascii|automatic # open [ sftp|ftp|scp:// ][ <user> [ :password ] @ ] <host> [ :<port> ] # Change remote directory # Change local directory # Force binary mode transfer # Download file to the local directory d:\ # option synchdelete on|off # option include clear | <mask>[;<mask2>...] # synchronize local|remote|both [ <local directory> [ <remote directory> ] ] 从远程同步到本地用Local;从本地同步到远程用Remote # Disconnect # Exit WinSCP |
将上述脚本存成sample.txt文件,然后通过winscp.exe /console /script=sample.txt 命令执行文件同步操作.
我们通常可以将此命令写到批处理.bat文件中,将要运行的用户编写的本地.ext程序也写入批处理文件中,然后放到控制面板->计划任务中,这样程序可定时执行,不需要用户再反复从远程取文件,执行程序,再上传到远程这一系列操作.
曾遇到问题
1. 问题: 客户提供的FTP账号,是ASCII码读到,导致用Winscp软件连接不上?
解决办法:打开Winscp软件,创建登录点,点击"Connection",将红圈中的复选框打勾,点击"Save".
保存后的FTP连接名为: 用户名@域名
然后打开Sample.txt脚本文件,找到Open ftp处,改为Open ftp://用户名@域名,保存文件.这样就可解决模式问题.
下载