ftp中转服务器,bat实现的ftp中转

因工作原因,需要将一些文件从ftp server1传到ftp server2上,但是这2台ftp服务器直接网络不通,不能用fxp方式,为了方便写了个算是实现ftp中转功能的ftp批处理程序。

另因是windows上的bat也就归类到shell吧。

::***************************************************************

:: 功能:自动ftp,从一个ftp服务器下载后上传到另一个ftp服务器

:: write by lixw

:: 2009-08-26

:: 注:两个ftp服务器直接不通,不能直接使用fxp方式

::***************************************************************

@@echo off

for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do @set dirname=%%a%%b%%c

set log=d:\zzftp.log

set tmpdir=d:\zzftp

set down=%tmpdir%\down

set up=%tmpdir%\up

set down_ip=xxx.xxx.xxx.xxx

set down_user=username1

set down_pass=password1

set down_dir=dirname1

set dufile=filename

set up_ip=yyy.yyy.yyy.yyy

set up_user=username2

set up_pass=password2

set up_dir=%dirname%

@echo 开始ftp操作,请稍后!

echo ------------------------------------------->>%log%

date /t >>%log%

time /t >>%log%

echo 开始ftp操作. >>%log%

call :myftp >>%log%

echo 结束ftp操作. >>%log%

echo 是否查看日志? y或n

set /p seelog=

if "%seelog%"=="y"   more %log%

echo 是否删除ftp日志和临时目录? y 或n

set /p delftp=

if "%delftp%"=="y"  del %log% & rmdir /s /q %tmpdir%

echo ------------------------------------------->>%log%

goto :EOF

:myftp

mkdir %tmpdir%

echo open %down_ip%       >>%down%

echo %down_user%>>%down%

echo %down_pass%>>%down%

echo cd %down_dir%        >>%down%

echo lcd %tmpdir%         >>%down%

echo bin           >>%down%

echo mget %dufile%        >>%down%

echo bye                  >>%down%

echo open %up_ip%     >>%up%

echo %up_user%            >>%up%

echo %up_pass%            >>%up%

echo bin                  >>%up%

echo cd %dirname%         >>%up%

echo pwd                  >>%up%

echo lcd %tmpdir%         >>%up%

echo mput %dufile%        >>%up%

echo bye                  >>%up%

%windir%\system32\ftp -i -s:d:\zzftp\down

%windir%\system32\ftp -i -s:d:\zzftp\up

:EOF