批处理实现auto ftp

本文介绍了一个用于Windows操作系统的批处理脚本,该脚本可以实现从FTP服务器自动下载指定文件的功能。脚本首先检查网络连接状态,然后尝试连接到指定的FTP服务器,并下载所需的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值