Batch file 使用批处理卷曲多个url,并将结果保存在txt文件中

Batch file 使用批处理卷曲多个url,并将结果保存在txt文件中,batch-file,curl,xidel,Batch File,Curl,Xidel,我想使用带有批处理文件的curl从多个网站获取数据,然后将curl结果保存到文本文件中 我知道的语法是: curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587492&lon=125.952764" >> output.txt curl "https://nominatim.openstreetmap.org/reverse?format=js

我想使用带有批处理文件的curl从多个网站获取数据,然后将curl结果保存到文本文件中

我知道的语法是:

curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587492&lon=125.952764" >> output.txt
curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587493&lon=125.952765" >> output.txt
curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587494&lon=125.952766" >> output.txt
curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587495&lon=125.952767" >> output.txt
curl "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587496&lon=125.952768" >> output.txt
我把上面的卷曲改成了环状,效果很好。我已经设置了LF,以便下一个结果可以移动到下一行,但它不起作用。 下面是我的脚本:

@echo off
set setlocal EnableDelayedExpansion

set url1="https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587492&lon=125.952764"
set url2="https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587493&lon=125.952765"
set url3="https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587494&lon=125.952766"
set url4="https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587495&lon=125.952767"
set url5="https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587496&lon=125.952768"

(set LF=^
%=EMPTY=%
)

echo %url1%
for %%x in (set) do (
 curl %url1%%LF%
 curl %url2%%LF%
 curl %url3%%LF%
 curl %url4%%LF%
 curl %url5%%LF%
)> output.txt

我觉得很奇怪,你想要一个普通的文本文件作为输出,而你正在处理的URL实际上是JSON对象。要将多个JSON对象正确保存为有效JSON,必须将它们放入JSON数组中。
我想说,你最好有个工具来解决这个问题

您可以手动输入您提到的5个URL:

xidel-se^”^
排列{^
json文档('https://nominatim.openstreetmap.org/reverse?format=jsonv2^&lat=-19.587492^&lon=125.952764’^
json文档('https://nominatim.openstreetmap.org/reverse?format=jsonv2^&lat=-19.587493^&lon=125.952765’^
json文档('https://nominatim.openstreetmap.org/reverse?format=jsonv2^&lat=-19.587494^&lon=125.952766’^
json文档('https://nominatim.openstreetmap.org/reverse?format=jsonv2^&lat=-19.587495^&lon=125.952767’^
json文档('https://nominatim.openstreetmap.org/reverse?format=jsonv2^&纬度=-19.587496^&lon=125.952768')^
}^
"
…但您也可以动态构建它们:

xidel-se^”^
让$json:={'format':'jsonv2','lat':-19.587492,'lon':125.952764}返回^
地图:合并(^
($json,{'lat':$json/lat-0.000001},{'lon':$json/lon+0.000001})^
{'duplicates':'use-last'}^
)^
“--打印json格式=压缩
{“格式”:“jsonv2”,“lat”:-19.587493,“lon”:125.952765}
xidel-s--xquery^”^
让$json:={'format':'jsonv2','lat':-19.587492,'lon':125.952764}^
从0到4的x美元^
返回^
地图:合并(^
(^
$json^
{'lat':$json/lat-($x*0.000001)}^
{'lon':$json/lon+($x*0.000001)}^
),^
{'duplicates':'use-last'}^
)^
“--打印json格式=压缩
{“格式”:“jsonv2”,“lat”:-19.587492,“lon”:125.952764}
{“格式”:“jsonv2”,“lat”:-19.587493,“lon”:125.952765}
{“格式”:“jsonv2”,“lat”:-19.587494,“lon”:125.952766}
{“格式”:“jsonv2”,“lat”:-19.587495,“lon”:125.952767}
{“格式”:“jsonv2”,“lat”:-19.587496,“lon”:125.952768}
xidel-s--xquery^”^
让$json:={'format':'jsonv2','lat':-19.587492,'lon':125.952764}^
从0到4的x美元^
返回^
请求联合收割机(^
'https://nominatim.openstreetmap.org/reverse',^
地图:合并(^
(^
$json^
{'lat':$json/lat-($x*0.000001)}^
{'lon':$json/lon+($x*0.000001)}^
),^
{'duplicates':'use-last'}^
)^
)/网址^
"
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587492&lon=125.952764
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587493&lon=125.952765
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587494&lon=125.952766
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587495&lon=125.952767
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=-19.587496&lon=125.952768
xidel-s--xquery^”^
排列{^
让$json:={'format':'jsonv2','lat':-19.587492,'lon':125.952764}^
从0到4的x美元^
返回^
请求联合收割机(^
'https://nominatim.openstreetmap.org/reverse',^
地图:合并(^
(^
$json^
{'lat':$json/lat-($x*0.000001)}^
{'lon':$json/lon+($x*0.000001)}^
),^
{'duplicates':'use-last'}^
)^
)/json文档(url)^
}^
"
[
{
“地点id”:259803148,
“许可证”:“数据c OpenStreetMap贡献者,ODbL 1.0。https://osm.org/copyright",
“osm_类型”:“关系”,
“osm_id”:11690317,
“lat”:“-21.5177325”,
“lon”:“123.525956300504817”,
“排名”:20,
“类别”:“边界”,
“类型”:“管理”,
“重要性”:0.25,
“地址类型”:“郊区”,
“名称”:“Telfer”,
“显示名称”:“澳大利亚西澳大利亚东皮尔巴拉郡特尔弗”,
“地址”:{
“郊区”:“特尔弗”,
“自治市”:“东皮尔巴拉郡”,
“州”:“西澳大利亚州”,
“国家”:“澳大利亚”,
“国家/地区代码”:“非盟”
},
“边界框”:[“-23.509751”、“-19.5”、“120.064128”、“126.001296”]
},
[...]
]
或者当然是缩小版(不需要转义字符):

xidel-s--xquery“数组{let$json:={'format':'jsonv2','lat':-19.587492,'lon':125.952764}用于0到4中的$x返回请求组合('https://nominatim.openstreetmap.org/reverse“,映射:合并($json,{'lat':$json/lat-($x*0.000001)},{'lon':$json/lon+($x*0.000001)}),{'duplicates':'use-last'})/json文档(url)}”

使用您发布的语法有什么问题?你说的循环是什么意思?为什么你需要一个?我希望卷曲像这样我知道什么是环!如果不太麻烦的话,我需要你告诉我你到底想做什么,为什么你需要一个循环。你给我们的链接表明你有一个充满URL的文本文件,你想对每个URL运行cURL命令,这就是你想要做的吗?顺便说一句,这个网站不是一个代码编写服务,我们也不是来为您将BASh转换为Batch的。在这里,我们希望您编写自己的代码,并在某个特定问题上寻求帮助,如果它无法按照编写的和预期的方式工作。请看一下页面我修改了我的问题细节。但是我的脚本仍然无法工作。打开命令提示窗口,键入
获取/?
,按
[ENTER]
键,然后读取使用信息。您应该从新发现的知识中注意到,在您发布的场景中,您根本不应该使用
for/L
。此外,不需要任何
%LF%
变量。你能确切地解释一下任务是什么吗?因为没有很好的理由将所有这些URL都设置为