批处理下载FTP服务器上指定分钟数之前的文件

@echo off
rem 指定FTP用户名
set ftpUser=xxx
rem 指定FTP密码
set ftpPass=xxxxxxx
rem 指定FTP服务器地址
set ftpIP=xxx.xxx.xxx.xx
rem 指定待下载的文件位于FTP服务器的什么位置
set ftpFolder=/export/home/PROD/ntcdata
rem 指定从FTP下载下来的文件存放到什么地方
set DownFolder=E:/

rem 指定下载几分钟前的文件
set MinsAgo=60
set ftpDir=%temp%/TempDir2.txt
set ftpDown=%temp%/TempDown2.txt

rem 假设本机日期时间格式为yyyy-mm-dd hh:nn:ss
set FileY=%date:~0,4%
if %time:~0,2% lss 10 (set hh=0%time:~1,1%) else (set hh=%time:~0,2%)
call :DateToMins %date:~0,4% %date:~5,2% %date:~8,2% %hh% %time:~3,2% Mins
set /a Mins-=MinsAgo
call :MinsToDate %Mins% DstYear DstMonth DstDay DstHour DstMin

>"%ftpDir%" echo.%ftpUser%
>>"%ftpDir%" echo.%ftpPass%
>>"%ftpDir%" echo bin
>>"%ftpDir%" echo cd "%ftpFolder%"
>>"%ftpDir%" echo dir * "%temp%/FileList2.txt"
>>"%ftpDir%" echo bye
start ftp -v -i -s:"%ftpDir%" %ftpIP%

rem 根据实际情况自行调节延迟时间
ping -n 350 127.1 >nul

findstr /i ":*/.SWM$" "%temp%/FileList2.txt">"%temp%/FileDate2.txt"
findstr /i ":*/.TWM$" "%temp%/FileList2.txt">>"%temp%/FileDate2.txt"
findstr /i ":*/.OWM$" "%temp%/FileList2.txt">>"%temp%/FileDate2.txt"

>"%ftpDown%" echo.%ftpUser%
>>"%ftpDown%" echo.%ftpPass%
>>"%ftpDown%" echo bin
>>"%ftpDown%" echo cd "%ftpFolder%"
(for /f "usebackq tokens=1-10 delims=: " %%a in ("%temp%/FileDate2.txt") do (
  setlocal enabledelayedexpansion
  if "%%f" equ "Jan" (
    set FileM=01
  ) else if "%%f" equ "Feb" (
    set FileM=02
  ) else if "%%f" equ "Mar" (
    set FileM=03
  ) else if "%%f" equ "Apr" (
    set FileM=04
  ) else if "%%f" equ "May" (
    set FileM=05
  ) else if "%%f" equ "Jun" (
    set FileM=06
  ) else if "%%f" equ "Jul" (
    set FileM=07
  ) else if "%%f" equ "Aug" (
    set FileM=08
  ) else if "%%f" equ "Sep" (
    set FileM=09
  ) else if "%%f" equ "Oct" (
    set FileM=10
  ) else if "%%f" equ "Nov" (
    set FileM=11
  ) else if "%%f" equ "Dec" (
    set FileM=12
  )
  set FileD=10%%g
  set FileD=!FileD:~-2!
  set FileH=10%%h
  set FileH=!FileH:~-2!
  if "!FileM!" equ "%DstMonth%" (
  if "!FileD!" equ "%DstDay%" (
    if "!FileH!" equ "%DstHour%" (
     echo get "%%j" "%DownFolder%/%%j"
    )
  )
)
  endlocal
))>>"%ftpDown%"
>>"%ftpDown%" echo bye
start ftp -v -i -s:"%ftpDown%" %ftpIP%

rem 根据实际情况自行调节延迟时间
rem ping -n 700 127.1 >nul

goto :eof

:DateToMins %yy% %mm% %dd% %hh% %mm%
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3&set hh=%4&set nn=%5
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
if 1%hh% LSS 20 set hh=0%hh%
if {%nn:~2,1%} EQU {p} if "%hh%" NEQ "12" set hh=1%hh%&set/a hh-=88
if {%nn:~2,1%} EQU {a} if "%hh%" EQU "12" set hh=00
if {%nn:~2,1%} GEQ {a} set nn=%nn:~0,2%
set /a hh=100%hh%%%100,nn=100%nn%%%100,j=j*1440+hh*60+nn
endlocal&set %6=%j%&goto :EOF

:MinsToDate %mins% yy mm dd hh nn
setlocal ENABLEEXTENSIONS
set /a i=%1,nn=i%%60,i/=60,hh=i%%24,dd=i/24,i/=24
set /a a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
(if %hh% LSS 10 set hh=0%hh%)&(if %nn% LSS 10 set nn=0%nn%)
endlocal&set %6=%nn%&set %5=%hh%&set %4=%dd%&^
set %3=%mm%&set %2=%yy%&goto :EOF
(0)

相关推荐

  • 批处理完美实现FTP远程备份数据

    经过再次努力,终于完成了自己的比较满意的版本,大家多批评-- 批处理功能: 输入几个参数,让批处理代你完成烦琐的工作吧!远程FTP文件到本地计算机,你可以拖入开机启动或任务计划中,定时下载远程的指定数据,希望大家多测试,多提意见,多完善,谢谢!上代码! 举例说明: 我需要每天早上从服务器202.33.22.102上下载指定目录的文件到本机,那么你需要指定以下几个参数即可 一.远程IP,Is not null 二.FTP用户名,Is not null 三.远程密码,Is not null 四.下载

  • 批处理bat下载FTP服务器上某个目录下的文件

    本代码以下载FTP服务器上某个目录下的所有文件为例. 如果需要下载某个目录下的.txt类型的所有文件,请把 mget *.* 改成 mget *.txt 如果需要下载某个目录下的某一个文件a.txt,请把 mget *.* 改成 get a.txt @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 rem 指

  • 实现FTP整站上传的批处理代码

    @echo off rem 设置FTP服务器地址 set ftpIP=192.168.0.2 rem 设置FTP用户名 set ftpUser=MyUser rem 设置FTP密码 set ftpPass=MyPass rem 设置待上传的本地文件夹目录 set UpFolder=C:/test rem 生成待上传的本地文件夹列表 type nul>%temp%/FolderList.txt for /r "%UpFolder%" %%a in (.) do ( set Full

  • 批处理bat下载FTP服务器上指定天数之前的文件

    @echo off rem 指定FTP用户名 set ftpUser=asx rem 指定FTP密码 set ftpPass=asx-asx rem 指定FTP服务器地址 set ftpIP=172.19.103.7 rem 指定待下载的文件位于FTP服务器的什么位置 set ftpFolder=/export/home/PROD/ntcdata rem 指定从FTP下载下来的文件存放到什么地方 set LocalFolder=E:/Temp rem 指定下载几天前的文件 set DaysAgo

  • 批处理(ftp)上传文件到服务器的代码

    backup.bat 复制代码 代码如下: backup.batftp -n -s:"d:\userweb\upbak.ftp" upbak.ftp 复制代码 代码如下: upbak.ftpopen 192.168.1.19 user webbakusername bakpassword!@#123 lcd D:\userweb\www.gsta.cn\CMS\Databases bin prompt mput *.* bye quit exit

  • 批处理向FTP上传具有指定属性的文件(增量备份)

    怎样实现对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性,批处理可以实现到吗?有点类似于对文件增量备份的功能吧 @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 设置待上传的本地文件夹目录 set SrcFolder=C:/test dir

  • 通过批处理修改FTP账号和密码

    方法一.批处理修改FTP账号和密码 @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP原密码 set ftpPassOld=FTPPASSWORDOLD rem 指定FTP新密码 set ftpPassNew=FTPPASSWORDNEW rem 指定FTP服务器地址 set ftpIP=192.168.0.2 set FtpFile=%temp%/TempFTP.txt >"%FtpFile%" echo,%ftpU

  • 批处理下载FTP服务器上指定分钟数之前的文件

    @echo off rem 指定FTP用户名 set ftpUser=xxx rem 指定FTP密码 set ftpPass=xxxxxxx rem 指定FTP服务器地址 set ftpIP=xxx.xxx.xxx.xx rem 指定待下载的文件位于FTP服务器的什么位置 set ftpFolder=/export/home/PROD/ntcdata rem 指定从FTP下载下来的文件存放到什么地方 set DownFolder=E:/ rem 指定下载几分钟前的文件 set MinsAgo=6

  • Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法

    一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法.下载文件的通用方法以及删除文件.在ftp服务器上传文件夹.检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,Java FTP主文件代码: package ftpDemo; import java.io.DataOutputStream; import java.io.InputStream; import java.io.OutputStream; import sun.net

  • c#分页显示服务器上指定目录下的所有图片示例

    c#分页显示服务器上指定目录下的所有图片 复制代码 代码如下: <%@ Page Language="C#" EnableViewState="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  • python修改FTP服务器上的文件名

    python修改FTP服务器上的文件名,具体代码如下所示: #-*- coding:utf-8 -*- #修改ftp服务器上的文件名 from ftplib import FTP def ftpoperate(ip,port,username,passwd,path): #获取ftp服务器某一文件夹下的所有文件名 ftp = FTP() ftp.set_debuglevel(0) ftp.connect(ip,port) ftp.login(username,passwd) ftp.cwd(pa

  • Python通过paramiko远程下载Linux服务器上的文件实例

    如下所示: #!/usr/local/bin/python # encoding:utf-8 import paramiko import os HOST_IP='59.110.12.72' REMOTE_PATH='/proc' REMOTE_FILENAME='meminfo' LOCAL_PATH='./proc' USERNAME='niu' PASSWORD='123456' def remote_scp(host_ip,remote_path,local_path,file_name

  • Android FTP服务器上传文件攻略(代码详解)

    1.前言 在开发中,会遇到向FTP服务器上传文件的需求,首先要导入 commons-net-3.3.jar 然后利用api进行相关操作,具体功能如下: Ftp相关代码 import android.util.Log; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; import java.i

  • Java通过FTP服务器上传下载文件的方法

    对于使用文件进行交换数据的应用来说,使用FTP 服务器是一个很不错的解决方案. 关于FileZilla Server服务器的详细搭建配置过程,详情请见FileZilla Server安装配置教程.之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲测上传2G的文件到FileZilla Server都没有该问题,朋友们可以放心使用该代码. FavFTPUtil.Java package com.favccxx.favsoft.util; import jav

  • php实现从ftp服务器上下载文件树到本地电脑的程序

    复制代码 代码如下: /* 用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异 a:单独的文件名 b:包含目录的文件名. 如果挪用,请注意更改此处. */ <?php function download_file($dir,$fc,$_FILE_) { $fn=ftp_nlist($fc,".");//列出该目录的文件名(含子目录),存储在数组中 $size=sizeof($fn); $dir=($dir=="")?$dir:('/'.

随机推荐