将变量传递给批处理文件中的cURL

时间:2018-08-27 11:59:34

标签: batch-file variables curl

我使用存储在.bat文件中的cURL命令。

我想在命令中实现变量,当我调用命令执行.bat文件时,该变量将接收值。

任何人都可以帮助理解以下语法:

  • 将变量传递到批处理文件
  • 将cURL命令的某些部分定义为变量(以下以粗体显示的部分)

这是我的cURL命令(粗体部分应该是变量):

curl -k --user "usercode:" -d source="https://secure.4log.com/**431032**" https://api.pdfshift.io/v2/convert/ -d sandbox=true --output C:\Users\administrator\Desktop\**testpdf11**.pdf

2 个答案:

答案 0 :(得分:1)

如果要发送参数,则只需使用:

curl %1 %2 %3

每个数字值定义批处理后单词的位置。

作为一个简单的示例,如果您只运行以下内容,就可以运行:

mybatch.bat 1234 5678

1234将被视为%1,而5678将是%2,您将得到:

source="https://secure.4log.com/%1" C:\Users\administrator\Desktop\%2.pdf

导致:

source="https://secure.4log.com/1234" C:\Users\administrator\Desktop\5678.pdf

如果您打算使用带空格的参数或任何带引号的文本,则应该使用%~1%~2,因为这样会为您删除引号。

答案 1 :(得分:1)

批处理文件的参数由%1引用,第一个引用,%2引用第二个,依此类推,直到%9,这将使您执行命令:

curl -k --user "usercode:" -d source="https://secure.4log.com/%~1" https://api.pdfshift.io/v2/convert/ -d sandbox=true --output C:\Users\administrator\Desktop\%~2.pdf

注意:使用%~1删除周围的引号(如果没有,则无效)

您可能想在使用以下命令之前检查是否至少有两个参数:

if "%~2"=="" (echo you need two parameters & goto :eof )

(甚至可能添加一些真实性测试)