使用cURL和批处理行迭代

时间:2008-12-17 13:13:53

标签: curl

我有一个文件夹,我需要使用cURL发布到web服务,但我不确定批处理文件中的整个变量和迭代事项。

我知道curl的语法应该是

c:\curl\bin\curl -X POST -F File=@[filename] -F "title=[title]" -F "notes=[notes]" "http://xxx/AddScannedImage?debtref=[filename]"

但是变量中的%符号似乎在URL编码中被吞噬了

有什么想法吗?

TIA

2 个答案:

答案 0 :(得分:4)

您应该尝试使用-g又名--globoff cURL选项。

默认行为是:

  

您可以通过编写零件集来指定多个URL或URL的一部分   在括号内如下:

http://site.{one,two,three}.com
     

或者您可以使用[]获取字母数字系列的序列,如下所示:

ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt    (with leading zeros)
ftp://ftp.letters.com/file[a-z].txt
     

目前不支持嵌套序列,但您可以使用   几个彼此相邻:

http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html
     

您可以在命令行上指定任意数量的URL。他们会   按指定的顺序以顺序方式获取。

     

自卷曲7.15.1起,您还可以为范围指定步数计数器,因此   你可以得到每个第N个号码或字母:

http://www.numericals.com/file[1-100:10].txt
http://www.letters.com/file[a-z:2].txt

你甚至可以这样做:

    curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/

但是在你的情况下,你真的不希望这样,所以你应该使用-g标志来告诉它不要做全局化。

答案 1 :(得分:2)

百分比符号(%)是Windows / DOS批处理文件中的特殊字符。在命令行上,您可以使用单个%。在批处理文件中,使用两个。

例如,如果您的网址包含编码为%20的空格,那么您需要%%20