簡體   English   中英

如何將參數從 Windows 命令提示符傳遞到 Kitchen.bat (Pentaho)?

[英]How can I pass parameters from Windows command prompt to Kitchen.bat (Pentaho)?

我的問題

  1. 我創建了一個 Windows cmd 文件test.cmd ,它期望將兩個參數傳遞給Kitchen.bat (Pentaho)。

  2. 我通過傳遞兩個參數在 Windows 命令行中調用test.cmdtest.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 命令行

窗口命令行圖像

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

Pentaho KJB :

Pentaho KJB 圖像

我使用“寫入日志”功能從變量中檢索值。

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

這里的結果

結果圖片

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

顯示變量本身而不是實際值 (1, 2)。

需要注意的幾件事。

命名參數:您可以在 KJB/KTR 中設置一個參數,並通過 CMD 調用將值傳遞給這些參數。

在您的 KTR/KJB 配置中,轉到“參數”選項卡並設置所需的參數名稱。 在此處輸入圖片說明

在這種情況下,我將 A 的默認值設置為 1,B 的默認值設置為 2,您應該將默認值留空。

CMD Call此文檔應包含您需要的所有信息。 你在你的情況下,我看到你試圖在 KJB/KTR 調用之前設置 2 個變量。 我個人在我的批處理命令中使用 %VAR% 調用來引用 Windows 中的系統/環境變量,它們工作得很好,我不知道在運行時設置變量是否適用於 Pentaho,因為你是為您的 -param 命令的值傳遞一個“文字”,所以我認為 CMD 不會解析 %A% 或 %B%,因為它用引號括起來。

也就是說,Pentaho 中有很多方法可以解析變量並在運行時設置它們。

你的情況可能是你沒有在你的 KJB/KTR 的配置中設置參數,所以在調用時,它沒有找到 A 或 B,它只是打印 ${A} amd ${B} 因為沒有參數已設置,因此未解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM