每天定时从Mainframe下载gdg文件再上传到ftp

今天要完成一个任务:

任务描述

Step1:从大机(mainframe)上下载指定的gdg最新的2个generation到本地C:\gdg目录下。
Step2:将这些下载下来的gdg文件发送到指定的ftp服务器的/topath/users-4/目录下面,每天新建一个目录yyyymmdd用来存放当天的gdg文件。
Step3:不用OPC等大机上面的scheduling工具,用windows的“计划任务”功能即可。

这里是实现以上任务的批处理脚本ftpscript.bat。放在C:\ftpscript.bat,之后在windows计划任务里面添加每天定时运行即可。

@echo off
rem 指定mainframeIP
set mfIP=xxx.xxx.xxx.xxx
rem 指定mainframe用户名
set mfUser=IBMUSER
rem 指定mainframe密码
set mfPass=MFPASSWD
rem 指定从FTP下载下来的gdg存放到本地目录C:\gdg
set LocalFolder=C:\gdg
rem 指定将下载下来的文件发送到哪一个目标ftp server上面去
set toftpServer=xxx.xxx.xxx.xxx
set toftpuser=FTPUSER
set toftppass=TOFTPPASS
rem 事先清空本地目录C:\gdg,然后从大机上面下载最新的gdg放到这里
cd %LocalFolder%
del /s /q /f *.* 

rem 拼装ftp命令到C:\TempFTP.txt里面,最后用ftp.exe -n -s:"%ftpFile%" 执行里面的命令
set ftpFile=%temp%\TempFTP.txt
  >"%ftpFile%" (
rem 第一步:从大机上面下载文件放到C:\gdg目录 (前面已做清空) 
    echo open %mfIP%
    echo user %mfUser%
    echo %mfPass%    
    echo lcd "%LocalFolder%"
    echo ascii
    echo disconnect
rem echo site RECFM=VB LRECL=2548 BLKSIZE=27998
    echo get "'IBMUSER.TESTGDG.ASPA.EXTRACT(0)'"    
    echo get "'IBMUSER.TESTGDG.ASPA.EXTRACT(-1)'"   
rem 第二步:在目标ftp上新建一个yyyymmdd目录,将C:\gdg目录下所有的文件传到该目录下
    echo open %toftpServer%
    echo user %toftpuser%
    echo %toftppass%
    echo cd /topath/users-4/
rem echo echo %date% %time%
    echo mkdir %Date:~10,4%%Date:~4,2%%Date:~7,2%
    echo cd %Date:~10,4%%Date:~4,2%%Date:~7,2%
    echo put "'IBMUSER.TESTGDG.ASPA.EXTRACT(0)'" "IBMUSER.TESTGDG.ASPA.EXTRACT(0)"  
    echo put "'IBMUSER.TESTGDG.ASPA.EXTRACT(-1)'" "IBMUSER.TESTGDG.ASPA.EXTRACT(-1)"                                               
    echo pwd
    echo ls -all
    echo bye
  )
cd ..  
start c:\windows\system32\ftp.exe -n -s:"%ftpFile%" 

Comments !