用DOS批处理实现FTP自动上传、下载、清理文件

最近好像特别的忙,好久没来写点东西了,今天写了一个利用批处理程序完成FTP自动上传、下载、清理文件的程序。赶紧

记录下来,以备日后之用。
功能介绍:自动登录远程主机,并到指定目录下下载文件,下载完成后,检查下载到本地的文件并删除主机上的文件。
程序名称及功能:
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 程序开始运行
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文件的内容:

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脚本并执行。

转:http://blog.csdn.net/qiuhan/article/details/6938786

时间: 2024-07-30 05:01:56

用DOS批处理实现FTP自动上传、下载、清理文件的相关文章

Windows和Linux之间ftp自动上传下载脚本

一.Windows主机自动从Linux ftp服务器下载文件 二.Linux主机自动从Windows ftp服务器下载文件 原文地址:http://blog.51cto.com/19940919/2073981

ftp自动上传下载文件脚本

FTP自动登录批量下载文件 从ftp服务器192.168.1.60 上的/home/data 到本地的/home/databackup目录 #!/bin/bash ftp -v -n 192.168.1.60<<EOFuser oracle 123456binarycd /home/datalcd /home/databackuppromptmget *closebyeEOF FTP自动登录批量上传文件 将本地文件夹/home/databackup里的文件上传到ftp服务器192.168.1.

C# 利用FTP自动下载xml文件后利用 FileSystemWatcher 监控目录下文件变化并自动更新数据库

using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading; using

定时从远程FTP服务器下载txt文件并导入本地Oracle数据库

集团内的业务数据以前是采用 地区采集—集团清洗-分发地区的ETL流程,自从集团成立软件公司以后,子公司需要的业务数据都必须向集团申请而来,但是业务系统底层DC也没提供相应的数据接口,所以就有了这次需求原型:从远程FTP服务器上定时获取txt数据文件,并将数据导入到本地Oracle数据库. 每天需要从FTP下载的txt文件有40-50个,除第一次全量数据文件在10G左右较大.下载耗时较长外,后续的增量文件都在500M以内. 需要使用到的技术.工具:FTPClient.Java多线程.Oracle提

CentOS 6.9使用Shell脚本实现FTP自动上传和下载文件

一.安装配置FTP: # yum -y install vsftpd # service vsftpd start # ss -tunlp | grep 21 //添加本地FTP登录用户ftpuser # useradd ftpuser # echo 123456 | passwd --stdin ftpuser # cd /etc/vsftpd/ # cp vsftpd.conf vsftpd.conf.bak # vim vsftpd.conf //允许本地用户登录FTP且对FTP具有写权限

imx6和imx7和am335从ftp服务器下载文件的方法

方法如下:ftpget -u zyx -p 123456 192.168.1.156 /hello ftpget :指令 -u :主机名称参数 zyx : 主机名称 -p :密码参数 123456:密码 192.168.1.156 : 主机IP /hello : 主机根目录下的hello文件这样成功地从ftp服务器下载了文件,相信大家一定掌握啦,期待下一次与大家知识的分享! 原文地址:https://blog.51cto.com/14586215/2446759

Linux使用Shell脚本实现ftp的自动上传下载

1. ftp自动登录批量下载文件. #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 192.168.1.171user guest 123456binarycd /home/datalcd /home/databackuppromptmget *closebye!2. ftp自动登录上传文件. ####本地的/home/databackup to ftp服务器上的/home/data#####

2.1.5基础之命令行链接ftp dos中的ftp上传下载文件

Windows命令行batcmd脚本的应用之自动备份 异地备份2.1.5基础之命令行链接ftp dos中的ftp上传下载文件 讲解环境 VMware Workstation 12 桌面虚拟计算机软件创建虚拟机安装操作系统:http://edu.51cto.com/course/10007.html PC1:192.168.1.201 远程地址:192.168.100.100:2001 windows service2008 pc1 Admin111FTP虚拟用户 fileaa fileaaPC2

dos批处理知识

echo 命令 rem 命令 pause 命令 call 命令 start 命令 goto 命令 set 命令 编辑本段批处理符号简介 回显屏蔽 重定向1 与 重定向2 管道符号 转义符 逻辑命令符 编辑本段常用DOS命令释义 文件夹管理 文件管理 网络命令 系统管理 编辑本段语句结构释义 if语句选择结构 for语句循环结构 编辑本段字符串处理释义 截取字符串 替换字符串 字符串合并 扩充字符串 编辑本段数值计算简介 编辑本段批处理概念方法简介 一环境变量 二用户变量 三参数 四返回值 五用户