pentaho PDI在命令行中传递uservariable

pentaho PDI在命令行中传递uservariable,pentaho,pentaho-spoon,pentaho-data-integration,Pentaho,Pentaho Spoon,Pentaho Data Integration,我试图通过在命令行中传递用户变量来运行转换/作业。 我已经尝试通过如下方式传递变量值 sh pan.sh-file='test.ktr'-param:input_directory=/path/to/directory'-level=basic 其中input_directory在转换中是变量,我提到它为${input_directory} 但当我这样做时,pan无法找到变量值。下面是抛出的错误 无法列出“”的内容file:///home/user1/pdi8.1/data-integratio

我试图通过在命令行中传递用户变量来运行转换/作业。 我已经尝试通过如下方式传递变量值

sh pan.sh-file='test.ktr'-param:input_directory=/path/to/directory'-level=basic 其中input_directory在转换中是变量,我提到它为${input_directory}

但当我这样做时,pan无法找到变量值。下面是抛出的错误

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


有人能帮我吗。谢谢

要将命名参数传递给作业或转换,需要在“属性”窗口中定义参数,此处显示的是转换。默认值不是必需的,但在测试中效果良好。注意资本化

因此,拼图的各个部分是:

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

  • 要将命名参数传递给作业或转换,需要在“属性”窗口中定义参数,此处显示的是转换。默认值不是必需的,但在测试中效果良好。注意资本化

    因此,拼图的各个部分是:

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

  • 我认为作业中使用的参数名应该是${PARAM_NAME1} 使用命令行时,我遵循以下惯例
    调用“{Replace with kitchen.bat File Path}”/File:“{Replace with JOB File Path}”“-param:param_NAME1=param_VALUE1”“-param:param_NAME2=param_VALUE2”

    我认为在作业中使用的参数名应该是${param_NAME1} 使用命令行时,我遵循以下惯例
    调用“{Replace with kitchen.bat File Path}”/File:“{Replace with JOB File Path}”“-param:param_NAME1=param_VALUE1”“-param:param_NAME2=param_VALUE2”

    因为这是linux,您尝试过不带引号吗?i、 e.-param:input_directory=/path还有,您是否已将其定义为转换的命名参数?谢谢..我尝试过不使用引号,例如-file='Events.ktr'-param:input_directory=samplefiles-level=debug仍然是相同的错误..我已将其定义为${input_directory}我没有设置任何东西,除了传递参数。因为这是linux,你试过没有引号吗?i、 e.-param:input_directory=/path还有,您是否已将其定义为转换的命名参数?谢谢..我尝试过不使用引号,例如-file='Events.ktr'-param:input_directory=samplefiles-level=debug仍然是相同的错误..我已将其定义为${input_directory}我没有设置任何东西,除了传递参数谢谢你的回复。。我怎样才能在Linux命令行中传递这个值呢?你现在的方式是,使用-param:input_directory=/path/to/directory。诀窍是,你不能只传递参数,然后像变量一样使用它,而不首先定义它。让我告诉你我做了什么,如果我错了,请纠正我。首先,我在get files组件中定义了一个变量,然后我从linux命令行传递这个变量。是否有任何错误。变量前面缺少$在我截图以删除客户端名称/目录(包括名称)时缺少$。但我试过用美元。我弄错了。谢谢你的回复。。我怎样才能在Linux命令行中传递这个值呢?你现在的方式是,使用-param:input_directory=/path/to/directory。诀窍是,你不能只传递参数,然后像变量一样使用它,而不首先定义它。让我告诉你我做了什么,如果我错了,请纠正我。首先,我在get files组件中定义了一个变量,然后我从linux命令行传递这个变量。是否有任何错误。变量前面缺少$在我截图以删除客户端名称/目录(包括名称)时缺少$。但我试过用美元。我弄错了。