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


    用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%	mp.tmp ##因要和另外一个程序通讯,所以用了这个状态标志文件,程序开始时写0进去,
    结束时再修改为1。这样另一个程序就可以判断何时文件接收结束,并开始处理文件。
    set SAVE_PATH=%BASE_PATH%
    set TMP_PATH=%BASE_PATH%	emp
    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
  • 相关阅读:
    zabbix源码安装
    利用Linux系统生成随机密码的8种方法
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
    Jenkins的参数化构建
    Jenkins中maven的作用--构建项目(三)
    Beans(dp,两次dp)
    Piggy-Bank(完全背包)
    Super Jumping! Jumping! Jumping!(dp)
    01串(dp)
    钱币兑换问题(完全背包)
  • 原文地址:https://www.cnblogs.com/gzggyy/p/3979666.html
Copyright © 2020-2023  润新知