运行 Java 来自 bat 文件或 Jupyter Notebook 的实用程序
Run Java utility from bat file or Jupyter Notebook
正在尝试编写一些来自 Domo 的下载实用程序的脚本。他们提供了一个 jar 文件形式的 CLI。我可以通过该实用程序正常工作,但我正在尝试按计划将其编写为 运行。它可以很好地加载 jar 文件,但无法像 运行 从 CMD 交互时那样将后续命令发送到 运行。
java -jar C:\domo\java\domoUtil.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 工具的 documentation 中进行了解释。
您当前的方法不起作用的原因是 &&
没有按照您的意愿进行。事实上。
A && B && C
告诉 shell 执行以下操作:
- 运行 shell 命令 A
- 如果 A return 是零 return 代码,运行 shell 命令 B
- 如果 B return 是零 return 代码,运行 shell 命令 C
这对你不起作用,因为 connect
和 query-data
不是 shell 命令。相反,它们是用于 运行 的 CLI 命令。此外,在向其发出连接和查询数据命令之前,您不想等待 CLI return 一个 return 代码(即完成)。
Domo CLI(可能)希望从其标准输入中读取命令。因此,以下 可能 作为替代方案(使用 Linux shell):
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 手册推荐的方法。
正在尝试编写一些来自 Domo 的下载实用程序的脚本。他们提供了一个 jar 文件形式的 CLI。我可以通过该实用程序正常工作,但我正在尝试按计划将其编写为 运行。它可以很好地加载 jar 文件,但无法像 运行 从 CMD 交互时那样将后续命令发送到 运行。
java -jar C:\domo\java\domoUtil.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 工具的 documentation 中进行了解释。
您当前的方法不起作用的原因是 &&
没有按照您的意愿进行。事实上。
A && B && C
告诉 shell 执行以下操作:
- 运行 shell 命令 A
- 如果 A return 是零 return 代码,运行 shell 命令 B
- 如果 B return 是零 return 代码,运行 shell 命令 C
这对你不起作用,因为 connect
和 query-data
不是 shell 命令。相反,它们是用于 运行 的 CLI 命令。此外,在向其发出连接和查询数据命令之前,您不想等待 CLI return 一个 return 代码(即完成)。
Domo CLI(可能)希望从其标准输入中读取命令。因此,以下 可能 作为替代方案(使用 Linux shell):
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 手册推荐的方法。