因工作原因,需要将一些文件从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
阅读(2521) | 评论(0) | 转发(0) |