Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] реализация скачивания в пакетном режиме (http://forum.oszone.net/showthread.php?t=191545)

alexmoreman 18-11-2010 11:19 1545535

реализация скачивания в пакетном режиме
 
Доброго времени суток!
Задался задачей скачать файлы в пакетном режиме с помощью wget
kfpbk по сети и нашол лишь один пример но он под линукс
Код:

#!/bin/bash
for i in `seq 1 746` ; do
wget http://civil-reprint.consultant.ru/images\
/3/00.png/0000.png/000006`printf "%.3d" $i`.png
done

там же далее и про винду
цитирую:

Можно использовать bash из набора утилит unix, собранных под Win32. Этим утилитам для работы не требуются CygWin или MinGW. Однако в этот набор не входит программа seq, зато в эту версию bash встроена программа проверки условий, поэтому командный файл придется переписать следующим образом:

Код:

#!/bin/bash
let n=1
while [ "$n" -le 746 ] ; do
wget http://civil-reprint.consultant.ru/images\
/3/00.png/0000.png/000006`printf "%.3d" $n`.png
let n=n+1
done

скачал этот набор но один фиг не получается.
для примера ссылки вида
от civil-reprint.consultant.ru/images/3/00.png/0000.png/000006001.png
до civil-reprint.consultant.ru/images/3/00.png/0000.png/000006746.png

amel27 18-11-2010 11:56 1545563

Цитата:

Цитата alexmoreman
в этот набор не входит программа seq »

есть в комплекте GNU для Windows, но можно и штатными средствами BAT/CMD:
Код:

@for /l %%i in (6001,1,6746) do @(
  set "$i=000000000%%i"
  call wget "http://civil-reprint.consultant.ru/images/3/00.png/0000.png/%%$i:~-9%%.png"
)

P.S. всё же для закачки файлов CURL лучше подходит, чем WGET

alexmoreman 18-11-2010 12:12 1545579

спасибо очень помогло!
буду дальше разбираться, надобно чтобы возможно было задавать диапазон номера директорий.
и чтобы при повторе названия файла была переименовка
если не трудно есть ли какие еще мысли?

amel27 18-11-2010 12:20 1545584

Цитата:

Цитата alexmoreman
надобно чтобы возможно было задавать диапазон номера директорий.
и чтобы при повторе названия файла была переименовка »

слишком туманно для конкретных мыслей... ;)

alexmoreman 18-11-2010 12:25 1545586

вот ссылка с диапазоном номера файла
Код:

%%i in (6001,1,6746) - диапазон
http://civil-reprint.consultant.ru/images/3/00.png/0000.png/%%$i:~-9%%.png

вот еще для папки думаю
типа
%%i in (001,1,150)
да и еще вопрос, переименовка повторяющихся в названии файлах возможна?

amel27 18-11-2010 12:46 1545597

Цитата:

Цитата alexmoreman
переименовка повторяющихся в названии файлах возможна? »

в общем случае - почему бы и нет, в каждом конкретном - зависит от постановки задачи... по одному URL вроде как не должно быть два файла с одним именем... если мы заказываем конкретный линк, то нам априори известно имя файла и проверить/переименовать дело техники (опять же, смотря по какому правилу переименовывать)

Цитата:

Цитата alexmoreman
%%i in (001,1,150) »

так нельзя - только так: "%%i in (1,1,150)", нолики потом можно дорисовать (как в примере)

alexmoreman 18-11-2010 14:50 1545679

подскажите пожалуйста как еще присобачить "random"
тоесть скачивается файл с именами 0017 по 0080.jpg
перехожу к следующей папке а там тоже такие имена имеются
ивот как присобачить на примере вот этом: за что большьшое спасибо Amel27
Код:

@for /l %%i in (6001,1,6746) do @(
  set "$i=000000000%%i"
  call wget "http://civil-reprint.consultant.ru/images/3/00.png/0000.png/%%$i:~-9%%.png"
)

чтобы ссылка вида такого стала

Код:

  call wget "http://civil-reprint.consultant.ru/images/3/00.png/0000.png/%%$i:~-9%%.png -O %random%.png"
и на выходе произвольное имя файла вроде 567477.png
или как то иначе.
У меня не получается.

amel27 19-11-2010 03:49 1546109

Цитата:

Цитата alexmoreman
чтобы ссылка вида такого стала »

нужно немного подправить :
Код:

call wget "http://civil-reprint.consultant.ru/images/3/00.png/0000.png/%%$i:~-9%%.png -O %%random%%.png"


Время: 21:08.

Время: 21:08.
© OSzone.net 2001-