现在的位置: 首页 > 综合 > 正文

批处理实现auto ftp

2013年08月17日 ⁄ 综合 ⁄ 共 3869字 ⁄ 字号 评论关闭

2007年末,在上海的第二个项目中需要实现自动上传文件,操作系统为windows,批处理脚本如下:

 

@echo off

rem ==================================================================
rem  文件名称:AutoFtp.bat
rem  文件标识:
rem  摘    要:up or download files from the ftp server
rem  作    者:will
rem  修 改 者:
rem  修改内容:
rem  修改时间:
rem  版    本:2007-12-12
rem ==================================================================


rem -----------------------Variable Definition------------------------
set LOCAL_FILE_PATH=C:/Docume~1/Admini~1/桌面/Downlo~1/142439

set SERVERIP=192.168.1.1
set FTPPORT=21
set USERNAME=user
set PASSWORD=password
set FILENAME=t_status.del
set SERVER_FILE_PATH=/users/niwp/temp/14:24:39-071217

set CONNECTED_FLAG=n
set LOGEDIN_FLAG=n
set DOWNLOADED_FLAG=n



rem -----------------------Prepare For Download Files-----------------
cd /d %LOCAL_FILE_PATH%
>>log.txt echo ========================%date% %time%==========================


rem -----------------------Check NetWork Status-----------------------
ping -n 2 %SERVERIP% > nul
if %ERRORLEVEL% NEQ 0 (
echo Error: NetWork Error!
echo Error: Can't get Reply from %SERVERIP%!

>>log.txt echo Error: NetWork Error!
>>log.txt echo Error: Can't get Reply from %SERVERIP%!
echo.
echo Press any Key to Exit!
pause >nul
exit
) else (
echo Connecting to %SERVERIP%...
>>log.txt echo Connecting to %SERVERIP% %PORT% with %USERNAME% %PASSWORD%
)


@call :STARTFTP


cd /d %LOCAL_FILE_PATH%


rem ------------------------Check FTP Connection----------------------
findstr /I /B "220[^0-9]" ftp.txt > nul
if %ERRORLEVEL% EQU 0 (
set CONNECTED_FLAG=y
)

findstr /I /B "230[^0-9]" ftp.txt > nul
if %ERRORLEVEL% EQU 0 (
set LOGEDIN_FLAG=y
)
if %CONNECTED_FLAG% NEQ y (
echo Error: Connect to %SERVERIP% Failed!
>>log.txt echo Error: Connect to %SERVERIP% Failed!
echo.
echo Press any to Exit!
pause >nul
exit
)

if %LOGEDIN_FLAG% NEQ y (
echo Error: Login Failed!
echo Error: User Name or Password incorrect!
>>log.txt echo Error: Login Failed!
>>log.txt echo Error: User Name or Password incorrect!
echo.
echo Press any Key to Exit!
pause > nul
exit
) else (
echo Connected to %SERVERIP%!
echo.
>>log.txt echo Connected to %SERVERIP%!
)


rem ----------------------Check Server File whether exist or not-----------------
findstr /I /E "%FILENAME% [not found]" ftp.txt > nul
if %ERRORLEVEL% EQU 0 (
echo Error: None Existed %SERVER_FILE_PATH%/%FILENAME% !
>>log.txt echo None Existed %SERVER_FILE_PATH%/%FILENAME% !
del /q %FILENAME%
echo.
echo Press any Key to Exit!
pause > nul
exit
) else (
echo Downloading %FILENAME% ...
>>log.txt echo --------------------------File On %SERVERIP%-----------------------------------
>>log.txt echo %SERVER_FILE_PATH%
>>log.txt echo.
findstr /I /E "%FILENAME%" ftp.txt | findstr ":" >> log.txt
>>log.txt echo --------------------------------------------------------------------------------
>>log.txt echo.
>>log.txt echo Downloading %FILENAME% ...
)


rem ---------------------Check File whether downloaded or not---------
if EXIST %FILENAME% (
set DOWNLOADED_FLAG=y
echo Downloaded Sucessfully!
echo.
echo %LOCAL_FILE_PATH%/%FILENAME% 
dir %LOCAL_FILE_PATH%/%FILENAME% | findstr "%FILENAME%"
echo.
echo.

  >>log.txt echo Downloaded Sucessfully!                                                         
  >>log.txt echo --------------------------File Have Downloaded----------------------------------
  >>log.txt echo %LOCAL_FILE_PATH%                                                               
  >>log.txt echo.                                                                                
  dir %LOCAL_FILE_PATH%/%FILENAME% | findstr "%FILENAME%" >> log.txt                             
  >>log.txt echo --------------------------------------------------------------------------------
>>log.txt echo.
>>log.txt echo.
>>log.txt echo.
del /q command.txt
  del /q ftp.txt
echo Exit after 5s!
ping -n 5 127.0.0.1 > nul
exit
)




:STARTFTP

rem ------------------------Clean temp file---------------------------
if EXIST command.txt del /Q command.txt


rem ------------------------Ftp Command in command.txt-----------------
rem >>command.txt echo bell
>>command.txt echo open %SERVERIP% %FTPPORT%
>>command.txt echo user %USERNAME%
>>command.txt echo %PASSWORD%
>>command.txt echo type binary
>>command.txt echo cd %SERVER_FILE_PATH%
>>command.txt echo dir %FILENAME%
>>command.txt echo get %FILENAME%
>>command.txt echo quit


rem -------------------------Start FTP---------------------------------
cd /d %LOCAL_FILE_PATH%

ftp -n -s:command.txt>ftp.txt

抱歉!评论已关闭.