我想 retrieve a specific part of a link in this web page using batch
首先,要检索此网页,我使用了以下命令:
wget --convert-links -N "http://dl.bukkit.org/downloads/bukkit/list/rb/"
然后,在这个网页中,我想得到这一行:
<a href="http://dl.bukkit.org/downloads/bukkit/get/01844_1.4.7-R1.0/bukkit.jar" class="tooltipd" title="Download Bukkit, version 1.4.7-R1.0">
然后,只检索链接中的构建名称:
01844_1.4.7-R1.0
所以,我用过这个:
for /f "delims=" %%i in ('grep "/downloads/bukkit/view/" index.html ^| head --lines=2') do set build=%%i
del index.html
set build=%build:~68,16%
echo %build%
总而言之,我找回了我想要的东西,但我认为还有另外一种方法可以做到,因为你可以猜到,构建名称一直没有相同的长度(有时候“00718_1.1-R4”=仅限此版本名称的12个字符),我使用了“固定”方法(设置build =%build:~68,16%)检索它......
那么,如果有人有这样做的最佳方法,可以使用斜杠作为分隔符?但我不知道该怎么做。
提前感谢您的帮助。
祝你有个美好的一天!
答案 0 :(得分:1)
for /f %%i in ('wget "http://dl.bukkit.org/downloads/bukkit/list/rb/" --output-document=- 2^>nul^|sed -n "/downloads\/bukkit\/get\//{s:.*/\([R0-9_.-]\+\).*:\1:p;q}"') do set "build=%%i"
echo %build%
不需要index.html
。
答案 1 :(得分:0)
del index.html
FOR /f "tokens=6delims=/" %%t IN ("%build%") DO SET build=%%t
echo %build%
应返回所需的字符串。