4

У меня есть случай, когда я хотел бы запустить автоматическую загрузку для списка из 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 line в Windows ?

4 ответа4

4

Вы не указали ОС, но если вы используете * nix и Bash, работает следующее:

wget http://server6.mp3quran.net/abkr/{001..114}.mp3

Решение, которое должно работать с любой оболочкой:

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

или, если 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

Просто скопируйте + вставьте его в оболочку или сохраните в файле сценария и запустите.

4

Для решения Windows попробуйте следующий скрипт PowerShell:

$Client = New-Object System.Net.WebClient
for ($i = 1; $i -le 144; $i++)
{
    $file = [string]::Format("{0:D3}.mp3", $i)
    $Client.DownloadFile("http://server6.mp3quran.net/abkr/" + $file, $file)
}

Сначала cd в каталог, в который вы хотите загрузить файлы.

4

Для полноты картины, вот решение для партии:

@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

Редактировать 1: удалены ненужные скобки.

Редактировать 2: исправлено начальное значение счетчика до 1.

0

Для справки и ради полноты версии без seq, приятного вывода и продолжения, если загрузка останавливается по какой-либо причине:

#!/bin/sh
for i in 00{1..9} 0{10..99} {100..144}
    printf 'http://server6.mp3quran.net/abkr/%s.mp3 ' $i
done | xargs wget -q --show-progress -c

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .