Я столкнулся с проблемой получения некоторых данных из API с помощью командной строки в Windows. По сути, это то, что я хочу сделать:
1 - получить список клиентов из API (используя curl и jq),
2. Сохраните этот список в формате .txt (я хотел сохранить его в переменной, но не смог),
3. Просмотрите список клиентов в .txt и отправьте новый запрос API для загрузки CSV, специфичной для этого клиента
Первые 2 шага работают нормально, но я застрял на последнем бите, чтобы перебрать клиентов.
Вот мой код:
setlocal ENABLEDELAYEDEXPANSION
Set tok=XXXXX
Set hURL="https://api.website.com/v2/clients?token=%tok%"
Set IDPath="C:\Users\My Self\subIDs.txt"
Set cuPath=%~dp0
del %IDPath%
curl -sS %hURL% | jq ".clients[].id" > %idPath%
FOR /F %%i in (%IDPath%) do (
echo %%i
Set subID=%%i
Set rURL="https://api.website.com/v2/data?token=%tok%&subscriptionId=!subID!"
curl -sS -o cuPath!subID!.csv !rURL!
)
endlocal
pause
Что странно для меня:
- echo %% i возвращает: C: \ Users \ My
Похоже, что пространство в пути является проблемой для этого цикла, но это не вызвало проблем с сохранением файла, поэтому я немного растерялся
- Я использую ! SubID! , так как я понимаю, что это единственный способ корректировать переменную каждый раз, однако, глядя на вывод переменной ! RURL! , тогда как % tok% успешно передается как XXXXX, ! subID! остается как! subID!
- Я, наконец, получаю, конечно, завиток: (6) Не удалось разрешить хост: rURL
Я совершенно новичок в API, пакетном режиме или JSON, и хотя я чувствую, что становлюсь ближе, я застрял на этом последнем кусочке. Есть идеи, как это решить?
Спасибо,