pentaho PDI 在命令行中传递用户变量

pentaho PDI passing uservariable in command line

我正在尝试通过在命令行中传递用户变量来 运行 Transformation/Job。 我试过如下传递变量值。

sh pan.sh -file='test.ktr' '-param:input_directory=/path/to/directory' -level=basic 其中 input_directory 在转换中是可变的,我将其称为 ${input_directory}

但是当我这样做时,平底锅无法找到变量值。抛出错误如下

无法列出 "file:///home/user1/pdi8.1/data-integration8.1/${input_directory}" 的内容,因为它不是文件夹。

有人可以帮我解决这个问题吗?谢谢

要将命名参数传递给您的作业或转换,需要在属性 window 中定义参数,此处显示为转换。不需要默认值,但可以很好地用于测试。注意大小写。

所以拼图的碎片是:

  1. 从命令行传递参数,如 -param:yourparam=yourvalue
  2. 在最高级别的作业或转换中定义相同的参数
  3. 像使用任何变量一样使用它,${yourparam}

我认为作业中使用的参数名称应该是 ${PARAM_NAME1} 使用命令行我遵循以下约定 call "{Replace with kitchen.bat File Path}" /file:"{Replace with JOB File Path}" "-param:PARAM_NAME1=PARAM_VALUE1" "-param:PARAM_NAME2=PARAM_VALUE2"