在 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]" ...