免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6382 | 回复: 3
打印 上一主题 下一主题

FTP自动上传下载脚本 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-03 17:23:07综合交流区版块每日发帖之星
日期:2015-08-19 06:20:00综合交流区版块每日发帖之星
日期:2015-09-15 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-22 18:46 |只看该作者 |倒序浏览

                               
首页 脚本系统管理脚本 ftp自动上传脚本 ftp自动下载脚本 自动ftp脚本 自动下载脚本 windowsftp脚本 
FTP自动上传下载脚本。有一个外部的FTP服务器,需要帐号和密码才能访问,用于与合作单位交换文件,每天自动上传新文件,并删除旧文件,同时下载合作单位上传的文件,该如何实现?最好有个批处理的范本。如果想更完美的话,[AD:韦博斯根条码检测仪TruCheck USB,TruCheck NAV,TruCheck 403,www.webscaninc.com.cn]希望有日志,和传送及下载成功的邮件通知,批处理可以实现吗?多谢! 
回答:根据您的描述,我对这个问题的理解是:您想要编辑一个FTP的脚本来实现自动上传新文件和删除老文件。我找了一些相关的编写FTP脚本的文章供您参考,
使用 FTP 批处理脚本
http://support.microsoft.com/kb/96269/zh-cn 
John Huang 黄吉 微软全球技术支持中心
FTP自动上传下载批处理脚本的一个例子请参考如下脚本:您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404554/
功能介绍:自动登录远程主机,并到指定目录下下载文件,下载完成后,检查下载到本地的文件并删除主机上的文件。
程序名称及功能:
getfile.bat:主程序,检查配置目录及调用ftp脚本。
getfile.ftp:ftp运行脚本。
movefile.bat:删除远程主机上的文件。
以下是批处理的具体内容。
1.getfile.bat内容:
@echo off
REM 配置基本盘符,主目录和文件存放目录
set BASE=d: 
set BASE_PATH=D:\doc\一卡通\ftp
set LOG_FILE=%BASE_PATH%\ftpgetfile.log
set FLAG_FILE=%BASE_PATH%\tmp.tmp ##因要和另外一个程序通讯,所以用了这个状态标志文件,程序开始时写0进去,
结束时再修改为1。这样另一个程序就可以判断何时文件接收结束,并开始处理文件。
set SAVE_PATH=%BASE_PATH%
set TMP_PATH=%BASE_PATH%\temp
set REMOTE_PATH=/home/ecton/data/download/1234
REM 程序开始运行[AD:二维条码检测仪www.webscaninc.com.cn]您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404554/
echo =========================================================== >> %LOG_FILE%
set DATET=%date%%time%
echo 程序开始运行,时间:%DATET% >> %LOG_FILE%
%BASE%
if not exist %BASE_PATH% (
   mkdir %BASE_PATH%
)
if not exist %SAVE_PATH% (
   mkdir %SAVE_PATH%
)
if not exist %TMP_PATH% (
   mkdir %TMP_PATH%
)
cd %TMP_PATH%
echo 0 > %FLAG_FILE%
if not exist %SAVE_PATH% (
echo 无法找到标志文件%SAVE_PATH% >> %LOG_FILE%
goto _END
)
ftp -n -s:"%BASE_PATH%\getfile.ftp" >> %LOG_FILE%
echo 本次获得的文件如下:>> %LOG_FILE%
dir /B %TMP_PATH%\S*.edb > %TMP_PATH%\filelist.tmp ##本次接收的文件列表,供movefile.bat删除文件的标识
dir /B %TMP_PATH%\*.edb >> %LOG_FILE%
move /Y %TMP_PATH%\*.edb %SAVE_PATH%\
FOR /F "usebackq delims=" %%i IN (`type filelist.tmp`) DO call %BASE_PATH%\movefile.bat %%i %LOG_FILE% %
REMOTE_PATH%
:_END
echo 1 > %FLAG_FILE%
del %TMP_PATH%\filelist.tmp
set DATET=%date%%time%
echo 程序运行结束,时间:%DATET% >> %LOG_FILE%
echo =========================================================== >> %LOG_FILE%
exit
2.getfile.ftp文件的内容:您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404554/
open 192.168.0.208
user ecton
huateng
cd /home/ecton/data/download/1234
prompt off
mget *.edb #也可以添加put、mput文件等其他操作
cd /home/ecton/data/download/pub
mget *.edb
bye
quit
exit
3.movefile.bat文件的内容:
echo open 192.168.0.208 >ftp.txt
echo user ecton huateng >>ftp.txt
echo cd %3 >>ftp.txt
echo prompt off >>ftp.txt
echo delete %1 >>ftp.txt ##这里是作删除动作,也可以rename
echo bye >>ftp.txt
echo quit >>ftp.txt
echo exit >>ftp.txt
ftp -n -s:ftp.txt >>%2
del ftp.txt
因windows下不能直接将参数传给ftp脚本函数,所以不得不想出这么一个愚蠢的办法,用getfile.bat传文件名给movefile.bat,再由movefile.bat动态生成一个ftp脚本并执行。
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/849/showart_1935759.html

论坛徽章:
0
2 [报告]
发表于 2011-06-03 10:54 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2011-09-01 14:44 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2011-09-14 10:50 |只看该作者
简单的东西 复杂化
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP