在 cmd 中工作但在 .bat 中不工作的 Curl 调用
Curl call working in cmd but not in .bat
当来自 cmd 的 运行 时,以下代码工作得很好,但是当来自 Pentaho DI 的 运行 作为 bat 时,它失败(访问被拒绝)。
curl -k --data "data=username%%3[DUSERNAME]%%26password%%3D[PASSWORD]%%26pid%%3D[1]%%26lid%%3D[2]" https://[...]/export/csv.php -o [...]\output.csv
我应该注意什么?假设问题出在凭据部分。
我已经设法通过创建外部 .bat 文件并使用 Pentaho 的 Shell 函数调用它来修复它。以前我在 Pentaho 中实现代码(它在 运行 时间创建临时 .bat 文件)。
问题是 %<number>
部分被解释为批处理文件 %1
、%2
、...
的参数
您可以简单地将所有 %
个字符加倍来转义它们:
curl -k --data "data=username%%%%3[DUSERNAME]%%%%26password%%%%3D[PASSWORD]%%%%26pid%%%%3D[1]%%%%26lid%%%%3D[2]" ...
当来自 cmd 的 运行 时,以下代码工作得很好,但是当来自 Pentaho DI 的 运行 作为 bat 时,它失败(访问被拒绝)。
curl -k --data "data=username%%3[DUSERNAME]%%26password%%3D[PASSWORD]%%26pid%%3D[1]%%26lid%%3D[2]" https://[...]/export/csv.php -o [...]\output.csv
我应该注意什么?假设问题出在凭据部分。
我已经设法通过创建外部 .bat 文件并使用 Pentaho 的 Shell 函数调用它来修复它。以前我在 Pentaho 中实现代码(它在 运行 时间创建临时 .bat 文件)。
问题是 %<number>
部分被解释为批处理文件 %1
、%2
、...
您可以简单地将所有 %
个字符加倍来转义它们:
curl -k --data "data=username%%%%3[DUSERNAME]%%%%26password%%%%3D[PASSWORD]%%%%26pid%%%%3D[1]%%%%26lid%%%%3D[2]" ...