猪莫慌

win系统kettle定时调度文件创建与部署

一:批处理文件(.bat文件)

@echo on
set str_time_first_bit="%time:~0,1%"
if %str_time_first_bit%==" " ( 
    set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%
)else (  
    set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%

set logName=%str_date_time%.log
set backdir="D:\ETL\Log\Main"
if not exist %backdir% md %backdir%
rem pdi开始抽取数据
rem %backdir%\%logName%   
cd \          
d:
cd D:\KETTLE\data-integration  
kitchen.bat /file:D:\ETL_CP\ETL_MAIN_JOB.kjb /level:Basic >%backdir%\%logName%

二:命令解释

NO1-->命令@echo on命令解释
   ::echo off:表示在批处理文件执行过程中,只显示结果,而不显示执行的命令(不包括本命令)
   ::@echo off:表示在批处理文件执行过程中,只显示结果,而不显示执行的命令(包括本命令)
   ::echo on:表示在批处理文件执行过程中,既显示执行命令,又显示执行结果(不包括本命令)
   ::@echo on:表示在批处理文件执行过程中,既显示执行命令,又显示执行结果(包括本命令)

NO2-->set str_time_first_bit命令解释
  set str_time_first_bit="%time:~0,1%"
  if %str_time_first_bit%==" " ( 
      set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%
   )else (  
        set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%
   ) 
     ::本段目的在于生成一个表示日期的变量,为下文创建日志名做准备
     ::str_time_first_bit 变量的作用是判断时间的第一个字符是否为空格,这在时间为00-09的时候会出现,这时需要在前面手动加上0, 如 9:13:25

NO3-->创建文件&目录
  set logName=%str_date_time%.log               ::创建日志文件
  set backdir="D:\ETL\Log\Main"  
  if not exist %backdir% md %backdir%         ::创建目录

NO4-->无名
  rem pdi开始抽取数据:rem表示注释命令,不执行,但能回显该命令

 NO5-->切换目录&执行主程
  set backdir="D:\ETL_LOG\Log\Main"          ::日志文件路径
  cd \                           ::切换至根目录   
  d:                           ::切换至D盘
  cd D:\KETTLE\data-integration                    ::寻找KETTLE中kitchen.bat所在路径
  kitchen.bat /file:D:\ETL_CP\ETL_MAIN_JOB.kjb /level:Basic >%backdir%\%logName%  ::运行kettle主程序,并打印日志

三:调度部署

  win+x---->任务计划程序--->创建基本任务-->添加批处理文件

posted on 2019-08-08 17:48  猪莫慌  阅读(679)  评论(0编辑  收藏  举报

导航