【问题标题】:Pentaho: Unexpected error running shell (java.lang.IllegalArgumentException: Invalid environment variable name:)Pentaho:运行 shell 时出现意外错误(java.lang.IllegalArgumentException:环境变量名无效:)
【发布时间】:2017-09-11 10:18:30
【问题描述】:

我正在尝试使用“Shell”函数在 Kettle 中运行 .bat 文件。但是,Pentaho 抛出错误,表明我的环境变量名无效。我完全不知道如何解决这个问题,因此我的帖子。

我在下面提供了输出日志文件文本:

2017/09/11 11:09:14 - 勺子 - 开始工作...
2017/09/11 11:09:14 - test_job - 作业执行开始
2017/09/11 11:09:14 - test_job - 开始条目 [test_batch.bat]
2017/09/11 11:09:14 - test_batch.bat - 在平台上运行:Windows 7
2017/09/11 11:09:14 - test_batch.bat - 执行命令:cmd.exe /C "\Desktop\test_batch.bat"
2017/09/11 11:09:14 - test_batch.bat - 错误(版本 5.3.0.0-213,buildguy 从 2015-02-02_12-17-08 构建 1):运行 shell [\Desktop\test_batch. bat]:java.lang.IllegalArgumentException:无效的环境变量名称:“
2017/09/11 11:09:14 - test_batch.bat - 错误(版本 5.3.0.0-213,buildguy 从 2015-02-02_12-17-08 构建 1):java.lang.IllegalArgumentException:无效的环境变量名称:“
2017/09/11 11:09:14 - test_batch.bat - 在 java.lang.ProcessEnvironment.validateName(未知来源)
2017/09/11 11:09:14 - test_batch.bat - 在 java.lang.ProcessEnvironment.put(未知来源)
2017/09/11 11:09:14 - test_batch.bat - 在 java.lang.ProcessEnvironment.put(未知来源)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.entries.shell.JobEntryShell.executeShell(JobEntryShell.java:568)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.entries.shell.JobEntryShell.execute(JobEntryShell.java:416)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.Job.execute(Job.java:716)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.Job.execute(Job.java:859)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.Job.execute(Job.java:532)
2017/09/11 11:09:14 - test_batch.bat - 在 org.pentaho.di.job.Job.run(Job.java:424)
2017/09/11 11:09:14 - test_job - 已完成作业条目 [test_batch.bat] (result=[false])
2017/09/11 11:09:14 - test_job - 作业执行完成
2017/09/11 11:09:14 - 勺子 - 工作已结束。

如果有人能就上述内容提出建议,将不胜感激!

谢谢

【问题讨论】:

  • 您在工作中使用Execute Shell Script。您使用的是 Insert script 还是 Script file name ?工作目录是否有效?如果是的话,下一个可能的错误是您的脚本,它是否愿意使用环境变量。

标签: shell pentaho


【解决方案1】:

您想运行一个执行作业的 bat 文件吗?不运行命令行 从一份工作。我对吗?

在这种情况下,命令行是kitchen /job=job-path。完整文档是here,论坛是(例如)here

该命令可以包含在 bat 文件中,前提是 bat 文件可以找到 kitchen 可执行文件。我注意到最近 Pentaho 删除了 kitchen.exe 以将其替换为 kitchen.bat,您可以从中复制 call 行。

如果你想运行转换,命令是pan.bat

【讨论】:

  • 实际上是相反的——我打算在作业本身中运行命令行。我曾经使用它来执行 R / Python 脚本以在 ETL 本身之前生成数据。
猜你喜欢
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
相关资源
最近更新 更多