Использование cURL и итераций пакетной линии - PullRequest
0 голосов
/ 17 декабря 2008

У меня есть папка, полная файлов, которые мне нужно опубликовать в веб-сервисе с помощью cURL, но я не уверен в переменных и итерациях в пакетных файлах.

Я знаю, что синтаксис для curl должен быть

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

но символы% от переменных, похоже, сожрали в кодировке URL

Есть идеи?

1010 * ТИА *

Ответы [ 2 ]

4 голосов
/ 17 декабря 2008

Вы должны попробовать с опцией -g aka --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 в командной строке. Они будут выбирается последовательно в указанном порядке.

Начиная с curl 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, чтобы запретить вообще делать сглаживание.

2 голосов
/ 30 декабря 2009

Символ процента (%) - это специальный символ в пакетных файлах Windows / DOS. В командной строке вы можете использовать один %. В пакетном файле используйте два.

Например, если ваш URL содержит пробел, закодированный как %20, то вам нужно %%20.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...