使用命令行/wget 自动下载一系列文件

Ana*_*awa 5 windows download wget command-line

我有一个案例,我想为每个读者触发一个包含 114 个文件(朗诵)的列表的自动下载,
例如,如果我想为名为 的读者下载朗诵,abkr文件的 url 将如下所示..

http://server6.mp3quran.net/abkr/001.mp3
http://server6.mp3quran.net/abkr/002.mp3
...
http://server6.mp3quran.net/abkr/113.mp3
http://server6.mp3quran.net/abkr/114.mp3

只是这些是古兰经的背诵,所以它们总是有 114

有没有一种简单的方法可以command lineWindows上循环使用?

Dan*_*son 5

您还没有说明操作系统,但如果您使用 *nix 和 Bash,则以下工作:

wget http://server6.mp3quran.net/abkr/{001..114}.mp3
Run Code Online (Sandbox Code Playgroud)

一个适用于任何 shell 的解决方案:

#!/bin/sh
for i in $(seq -w 1 114); do
    printf 'http://server6.mp3quran.net/abkr/%s.mp3 ' $i
done | xargs wget
Run Code Online (Sandbox Code Playgroud)

或者,如果系统seq上不存在:

#!/bin/sh
i=1
MAX=114
while [ $i -le $MAX ]; do
    printf 'http://server6.mp3quran.net/abkr/%03d.mp3 ' $i
    i=$((i+1))
done | xargs wget
Run Code Online (Sandbox Code Playgroud)

只需将其复制并粘贴到 shell 中或将其保存在脚本文件中并运行它。


zb2*_*226 5

为了完整起见,这是一个仅批处理的解决方案:

@ECHO OFF
SetLocal EnableDelayedExpansion
FOR /L %%G IN (1, 1, 114) DO (
    SET num=%%G
    IF 1!num! LSS 100 SET num=0!num!
    IF 1!num! LSS 200 SET num=0!num!
    wget http://server6.mp3quran.net/abkr/!num!.mp3
)
EndLocal
Run Code Online (Sandbox Code Playgroud)

编辑 1:删除了不必要的大括号。

编辑 2:将计数器起始值更正为 1。