2013年5月11日星期六

使用bat批处理做ftp自动下载


不是因为懒,不想每天从手动从服务器更新数据下来。确实是要提高效率。想找一个自动ftp下载的工具,找了很多,BatchSync FTP很好用,但是始终找不到破解版。后来和小熊同学一起配合下,终于把批处理的ftp下载搞定了,小巧绿色环保原生态,下面分享一下使用bat批处理做ftp自动下载的方法。

新建一个bat,随便名字如download.bat,敲入如下代码:
set ymd=%date:~0,10%
md “C:backup%ymd%”
cd C:backup%ymd%
@echo off
echo open 127.0.0.1>ftp.src
echo username>>ftp.src
echo password>>ftp.src
echo cd “/%ymd%/”>>ftp.src
echo prompt n>>ftp.src
echo type binary>>ftp.src
echo runique y>>ftp.src
echo mget *>>ftp.src
echo bye>>ftp.src
ftp -s:ftp.src
del ftp.src
解释:
红色部分用真实的ftp地址,用户名,密码代替。代码解释:
  1. 首先在本地新建一个以当天日期为名的文件夹
  2. 然后生成一个ftp.src的临时文件,这个文件有ftp操作的步骤,注意,要用另外一个文件存储ftp命令(FTP命令详解)。
  3. 使用ftp.src文件链接ftp服务器,开始下载
  4. 下载完成,删除临时文件ftp.src
还有几点需要注意的是,为什么要生成临时文件又删除?其实做成单独的文件也可以,但是这个ftp脚本限制了下载的文件只能存储在当前批处理脚本的路径下,而我希望按每天的日期来分别下载。而ftp命令中并不支持诸如%date:~0,10%这样的环境变量。所以这里就耍了一个小聪明。每天生成当天文件夹和当天脚本->下载好文件->删除脚本。如果你不用日期分割,可以把echo部分抽出来写一个文件。

没有评论:

发表评论