从bat文件或Jupyter Notebook运行Java实用程序



尝试从Domo编写一些下载实用程序的脚本。它们以jar文件的形式提供CLI。我可以从实用程序中很好地处理它,但我正在尝试将它编写为按时间表运行。它可以很好地加载jar文件,但不能像从CMD交互式运行它那样运行后续命令。

java -jar C:domojavadomoUtil.jar 
&& 
connect -s yourdomain.domo.com -t mytokenhere
&&
query-data -i datasetid -sql "SELECT * FROM `hs_users_raw`" -xf test3.csv

如果我是java新手,我将不胜感激,所以不确定为什么我似乎不能让它工作。。

您在这里试图解决的问题似乎是通过Domo CLI运行一些脚本化的Domo命令。

这样做的方法是将要运行的命令放入脚本文件中,然后使用-script选项来运行它

例如,将以下内容放入一个名为/path/to/myscript.domo的文件中。

connect -s yourdomain.domo.com -t mytokenhere
query-data -i datasetid -sql "SELECT * FROM `hs_users_raw`" -xf test3.csv

然后使用domoUtil.jar运行脚本,如下所示:

java -jar domoUtil.jar -script /path/to/myscript.domo

CLI工具的文档中对此进行了解释。


您当前方法不起作用的原因是&&没有按您的意愿执行。事实上

A && B && C

告诉shell执行以下操作:

  1. 运行shell命令A
  2. 如果A返回零返回代码,请运行shell命令B
  3. 如果B返回零返回代码,则运行shell命令C

这对您不起作用,因为connectquery-data不是shell命令。相反,它们是用于CLI运行的命令。此外,在向CLI发出连接和查询数据命令之前,您不希望等待CLI返回返回代码(即完成(。

Domo CLI(可能(希望从其标准输入中读取命令。因此,以下可能可以作为替代方案(使用Linux外壳(:

java -jar domoUtil.jar <<EOF
connect -s yourdomain.domo.com -t mytokenhere
query-data -i datasetid -sql "SELECT * FROM `hs_users_raw`" -xf test3.csv
EOF

使用Windows批处理脚本语言可能也有类似的功能。

无论哪种方式,-script方法都是Domo手册所建议的。

最新更新