kettle 用cmd bat来运行ktr和kjb

本文介绍如何使用批处理(.bat)文件来运行Kettle中的转换和作业。通过设置Kettle路径、作业路径及日志文件,实现批处理执行Kettle任务并记录执行日志。
pan /file x:\xxx\xxx.ktr
kitchen /file x:\xxx\xxx.kjb

bat写法
新建文本文档 改后缀为.bat,加入下面内容
第一种

@echo off
cmd /k "cd /d  kettle安装文件根目录 && kitchen /file x:\xxx\xxx\xxx.kjb "
pause

保存双击执行
第二种

@echo off
echo shengpingtaidata start 

set KettlePath=E:\bi-upload-jdey\data-integration5.4\Kitchen.bat
set JobPath=E:\BI\shengpingtai\shengpingtaidata.kjb
set LogFile=E:\BI\shengpingtai\LOG\%date:~0,4%%date:~5,2%%date:~8,2%

call %KettlePath% /file:%JobPath%  >> %LogFile%.log

echo end
exit

优化

@echo off
chcp 65001 >nul
title Kettle作业执行器 - 患者注册

REM 使用WMIC命令获取标准化的日期字符串(格式:yyyyMMdd)[6](@ref)
for /f "tokens=2 delims==" %%i in ('wmic OS get localdatetime /value') do set "DateTime=%%i"
set "DateFolder=%DateTime:~0,8%"  REM 提取yyyyMMdd

set "KettlePath=D:\HIUP\data-integration\Kitchen.bat"
set "JobPath=D:\HIUP\患者注册\患者注册作业.kjb"

REM 设置日志目录结构:基础目录\日期文件夹\
set "LogBaseDir=D:\HIUP\患者注册\LOG"
set "LogDir=%LogBaseDir%\%DateFolder%"
set "LogFile=%LogDir%\执行日志_%DateTime:~0,8%_%DateTime:~8,6%.log"

REM 检查关键文件是否存在
if not exist "%KettlePath%" (
    echo [错误] Kitchen.bat 未在指定路径找到: %KettlePath%
    pause
    exit /b 1
)
if not exist "%JobPath%" (
    echo [错误] 作业文件未找到: %JobPath%
    pause
    exit /b 1
)

REM 创建日志目录(如果不存在)[1,5](@ref)
if not exist "%LogDir%" (
    echo 正在创建日志目录: %LogDir%
    mkdir "%LogDir%"
)

REM 记录执行信息
echo 作业开始执行:%date% %time% > "%LogFile%"
echo 执行的作业文件:%JobPath%" >> "%LogFile%"

REM 执行Kettle作业并记录日志[1](@ref)
call "%KettlePath%" /file:"%JobPath%" /level:Basic >> "%LogFile%" 2>&1

REM 检查执行结果
if %errorlevel% equ 0 (
    echo 作业执行成功:%date% %time% >> "%LogFile%"
    echo Kettle作业已成功完成,日志位于:%LogFile%
) else (
    echo 作业执行失败,错误码:%errorlevel% %date% %time% >> "%LogFile%"
    echo [错误] 作业执行失败,请查看日志:%LogFile%
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值