Windows curl批处理文件

4

我想使用Windows批处理文件进行Mailgun的curl调用。由于Windows shell不支持多行,我该如何在Windows批处理文件中执行以下curl函数?

curl -s --user 'api:key-xxxxxxxxxx' \
    https://api.mailgun.net/v3/sandboxbxxxxxxxxxxxxx.mailgun.org/messages \
    -F from='user <email@gmail.com>' \
    -F to='user <email@live.com>' \
    -F subject='Hello' \
    -F text='body!' \
    -F attachment=@test.txt \

更新

当我尝试在删除多行后执行该命令时,返回了以下错误:

    curl -s --user 'api:key-xxxxxxxxxx' https://api.mailgun.net/v3/sandboxbxxxxxxxxxxxxx.mailgun.org/messages -F from='user  -F to='user  -F subject='Hello' -F text='body!' -F attachment=@test.txt 0<email@live.com 1>'
The system cannot find the file specified.

PS:附件文件在同一目录中。
谢谢!

1
把所有内容都放在一行上吗?将多行拆分成这样纯粹是为了可读性... - Marc B
@MarcB 是的,马克,事实上我尝试执行curl命令并删除多行,但我仍然得到这个奇怪的错误: curl -s --user 'api:key-xxxxxxxxxxx' https://api.mailgun.net/v3/sandboxxxxxxxxxxxx.mailgun.org/messages -F from='user -F to='user -F subject='Hello' -F text='body!' -F attachment=@test.txt 0<email@live.com 1>' - Ganesh Rathinavel
1
"<" 和 ">" 是用于重定向的 shell 元字符,如果你不希望它们被视为元字符,就必须对它们进行转义处理。 - Marc B
你必须将 <> 放在 " 之间或使用 ^ 进行转义,就像我的答案中所示。 - SachaDee
1个回答

10

只需将内容放在一行上,并在"之间加上<>重定向字符或使用^进行转义:

curl -s --user 'api:key-xxxxxxxxxx' https://api.mailgun.net/v3/sandboxbxxxxxxxxxxxxx.mailgun.org/messages -F from="user <email@gmail.com>" -F to="user <email@live.com>" -F subject='Hello' -F text='body!' -F attachment=@test.txt

您还可以为每个元素创建变量:
set "$ApiKey=api:key-xxxxxxxxxx"
set "$Url=https://api.mailgun.net/v3/sandboxbxxxxxxxxxxxxx.mailgun.org/messages"
set "$From=email@gmail.com"
....

and then 

curl -s --user '%$ApiKey%' %$Url% -F from="user <%$From%>" -F to= ....

3
只需将内容简单地放在一行上,并在双引号之间加上<>重定向字符,或使用^进行转义。我仍然不知道如何做到这一点。如果您能帮助我,那将非常有帮助。谢谢。 - Ganesh Rathinavel
2
像这样:-F from="user <email@gmail.com>" 或者像这样:-F from='user ^<email@gmail.com^>' - SachaDee
1
感谢您的帮助,非常感激!这是我所做的: curl -s --user "api:key-xxxxxxxxxxxx" https://api.mailgun.net/v3/xxxxxxxxxxxx.mailgun.org/messages -F from="user <email@gmail.com>" -F to="user <email@live.com>" -F subject="Hello" -F text="body!" - Ganesh Rathinavel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接