1、windows :编写bat文件
```bash
@echo off
rem 选择自己安装的kettle目录,示例为D:\kettle\data-integration
D:
cd D:\kettle\data-integration
rem 默认读取的是C盘用户目录下的.kettle文件夹中的repositories.xml
rem 若上述的.kettle目录做过处理,需先设置环境变量[set KETTLE_HOME=.kettle目录路径];若没有动过则无需变化
job调用方法:Kitchen.bat -rep=资源库名称 -user=资源库的用户名 -pass=资源库的密码 -dir=要执行的作业所在资源库的目录(/ETL/) -job=执行作业的名称(不用带后缀) -level=basic>D:\kettle\job.log(如何过要写日志,首先要有这个log文件)
transformation调用:pan.bat -rep=ETL_OA -user=admin -pass=admin
-dir=/ETL/REPORT/FOLDNAME -trans=转换名字
exit
2、C#代码调用:
//bat文件路径
string path = "E:\\aa\\a.bat";
Process pro = new Process();
FileInfo file = new FileInfo(path);
pro.StartInfo.WorkingDirectory = file.Directory.FullName;
pro.StartInfo.FileName = path;
pro.StartInfo.CreateNoWindow = false;
pro.Start();
pro.WaitForExit();
//MessageBox.Show("bat文件执行成功!");
3、或者直接写CMD命令
//创建一个进程
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;//是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
p.StartInfo.CreateNoWindow = true;//不显示程序窗口
p.Start();//启动程序
string strCMD = @"D:
cd D:\kettle-manager\data-integration
pan.bat -rep=ETL_OA -user=admin -pass=admin
-dir=/ETL/REPORT/FOLDNAME -trans=转换名字";
//向cmd窗口发送输入信息
p.StandardInput.WriteLine(strCMD + "&exit");
p.StandardInput.AutoFlush = true;
//获取cmd窗口的输出信息
string output = p.StandardOutput.ReadToEnd();
//等待程序执行完退出进程
p.WaitForExit();
p.Close();
MessageBox.Show(output);
Console.WriteLine(output);
发送http请求调用carte服务执行job或者转换