【发布时间】:2018-04-18 15:06:42
【问题描述】:
但它在清晰度上有所不同,因为我提供了确切的细节,而且这个问题已经 3 年了,这也带来了版本问题。此外,该问题尚未得到解答,互联网上没有其他可用的解决方案,除了少数只有未回答问题的页面。因此,再次发布更详细的信息。
我使用的是 pentaho 7.0.0,在我的 kjb 文件中,有一个 shell 脚本执行器调用另一个 ktr(我知道运行 ktr 可以通过使用 Transformation 执行器来完成,但我的要求有点不同,请共同操作)。这是我正在调用的批处理文件中的命令:
C:\pentahodi\6.1.0\data-integration\Pan.bat /file:"H:/newKtr.ktr" "/param:filePath=%filePath%" /level:Basic > H:/pentahoLog.log
但是,当我从 cmd 运行这个批处理文件时,它运行顺利并且 ktr 被调用并将 filePath 参数传递给它。但是当我使用 %filePath% (用于从 kjb 本身的参数传递)时,我得到了这个错误:
错误(版本 7.0.0.0-25,buildguy 从 2016-11-05 15.35.36 构建 1):(stderr) =256m""=="" 此时出乎意料。
在其中一个在线资源中,我了解到这个问题发生在 64 位 Windows 系统中。是这样吗?我正在运行 64 位 Windows 7。
这确实阻碍了我的所有努力。我是 pentaho 的新手,不知道如何解决这个问题。任何提示将不胜感激。
请帮忙。谢谢。
【问题讨论】:
-
您能否具体说明一下这是什么脚本?
shell标记通常用于 POSIX 系列 shell,而 cmd.exe(和 PowerShell)则不是/不是。对有争议的特定 shell 进行标记将有助于将其呈现在合适的人面前,而不是来自“shell”标记的一堆 UNIXy 人。 :) -
顺便说一句,理想情况下,我们希望问题包含重现问题所需的所有内容。这意味着实际上打开
pan.bat,构建一个新脚本,其中最短的子集可以创建相同的错误,并在问题中包含该简化脚本作为minimal reproducible example。有关构建简化复制器的更多指导,请参阅sscce.org 的“修剪技巧”部分。 -
你试试 /param:"filePath=%filePath%" 而不是 "/param:filePath=%filePath%" 吗?
-
@AlainD 试过了。同样的错误。你能解释一下为什么会发生这种情况吗?
-
@CharlesDuffy 我已将其标记为 shell 和 pentaho,因为 pentaho 为运行脚本提供的模块名为“shell”。在谈到 Unix 或 Windows 的 pentaho 时,shell 没有任何区别。
标签: powershell command-line pentaho pentaho-spoon pentaho-data-integration