windows - 如何将 Windows 命令提示符中的参数传递给 Kitchen.bat (Pentaho)?

标签 windows batch-file pentaho pentaho-spoon

我的问题

  1. 我创建了一个 Windows cmd 文件 test.cmd,它期望将两个参数传递给 Kitchen.bat (Pentaho)。

  2. 我通过传递两个参数在 Windows 命令行中调用 test.cmd:test.cmd 1 2

  3. Spoon(设计器)中,我将两个参数写入日志文件。

作业完成后,我仍然看到变量本身,而不是我传递的值 (1 2)。

我尝试了什么?

首先,我怀疑 bat 文件中的“param”有问题(它获取值并传递给 kitchen.bat),所以我用谷歌搜索并尝试了所有可能的解决方案,以下是我尝试过的.

"-param:A=%A%"
"/param:A=%A%" 
/param "A:%A%" 
'/param:"A=%A%"' 

不幸的是,这些都不起作用。

这是我的源代码

测试.bat:

echo "Starting Job.."
echo "printing parameter.."
echo %1
echo %2

Set A=%1
Set B=%2
set LOG_PATH=C:\App\Reporter\Pentaho\Config\Utilities\Import.log
Set CONFIG_PATH=C:\App\Reporter\Pentaho\Config\Utilities

C:\App\REPORTER\Pentaho\Env\V8.2\kitchen.bat /file:"CONFIG_PATH"\test.kjb "/level=Basic" "/logfile=%LOG_PATH%" "-param:A=%A%" "-param:B=%B%"

pause

Windows 命令行:

Window Command Line Image

C:......>test.cmd 1 2

Pentaho KJB:

Pentaho KJB Image

我使用“写入日志”函数从变量中检索值。

V1 = ${A}
V2 = ${B}

这里是结果

Result Image

V1 = ${A}
V2 = ${B}

显示变量本身而不是实际值 (1, 2)。

最佳答案

需要记住的几件事。

命名参数:您可以在 KJB/KTR 中设置参数,并通过 CMD 调用将值传递给这些参数。

在您的 KTR/KJB 配置中,转到“参数”选项卡并设置所需的参数名称。 enter image description here

在这种情况下,我将 A 的默认值设置为 1,B 的默认值设置为 2,您应该将默认值留空。

命令调用:This documentation应该有你需要的所有信息。 你在你的情况下,我看到你试图在 KJB/KTR 调用之前设置 2 个变量。我个人在我的批处理命令中使用 %VAR% 调用来引用 Windows 中的系统/环境变量,它们工作得很好,我不知道在运行时设置变量是否适用于 Pentaho,因为你是为您的 -param 命令的值传递“文字”,所以我认为 CMD 不会解析 %A% 或 %B%,因为它用引号引起来。

也就是说,在 Pentaho 中有很多方法可以解析变量并在运行时设置它们。

你的情况可能是你没有在 KJB/KTR 的配置中设置参数,所以在调用时,它没有找到 A 或 B,它只是打印 ${A} amd ${B}因为没有设置参数,因此没有解决。

关于windows - 如何将 Windows 命令提示符中的参数传递给 Kitchen.bat (Pentaho)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57595002/

相关文章:

jetty - 如何摆脱在 Pentaho 转换的 Web 服务调用中传递 "username and password"?

python - Windows错误对话框- 'Errors occurred'-这是哪里来的?

windows - 在数据库中存储 X509 证书 - 是或否?

python - Windows 上的ezyang/git-ftp

windows - 批处理文件 : How to capture output of a function in a variable?

pentaho - 在 pentaho 中将行转换为标题

c# - Microsoft 是否正在恢复 Managed DirectX?

powershell - 从拖尾日志中选择一个字符串

c# - 使用 Oracle.DataAccess.Client;下载并安装 OPD.NET 后未找到

sql-server - Pentaho Spoon 工具转换顺序