Войти

Показать полную графическую версию : Скачивание файла через http.


Menjoy
02-12-2010, 12:43
Добрый день.

Пробую сделать утилитку, которая будет скачивать файл через http протокол, при этом полный адрес и название файла достаются из двух *.txt файлов (т.е. первая строка f_adress.txt соответственно с первой строкой file.txt). Мне кажется с циклами что-то запутался и будет читать для каждой строки f_adress.txt по каждой строке file.txt.
Затем, после скачивания всех нужных файлов, каталог с ними проверяется на наличие архивов, при необходимости они распаковываются, ну а далее будет работа другого скрипта, о нем потом (:

Прочитал темы:
http://forum.oszone.net/thread-155289.html
http://forum.oszone.net/thread-182283.html
http://forum.oszone.net/thread-181512.html

сделал некоторые выводы.

Получился такой файл:

@echo off
for /f %%l in (f_adress.txt) do (
set KB_Url1=%%l
for /f %%k in (file.txt) do (
set KBFile1=%%k

SetLocal EnableExtensions

Set CURL=%~dp0curl.exe

CALL :GET_PROXY

<Nul Set /P XYZ=URL "KB_Url1" Testing...
"%CURL%" -f -s -I "KB_Url1" %$X% >Nul
If ErrorLevel 1 (Echo ERROR:%ErrorLevel%) Else (Echo OK!)

EXIT
:GET_PROXY
Set $X=&Set $R=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
For /F "Tokens=1,3" %%i In ('REG Query "%$R%"^|Find "Proxy"') Do Set %%i=%%j
If "%ProxyEnable%"=="0x1" Set $X=-x %ProxyServer%



echo.
))


Тут только еще нет проверки на архивы.
Просьба помочь с проверкой и дополнениями.

Спасибо.

Menjoy
02-12-2010, 12:52
Может это будет проще реализовать через wget?
Подсказали, что это буквально пару строк скрипта.

amel27
06-12-2010, 05:50
как вариант:
@echo off

set /a "$n=0,$m=0"
for /f "tokens=1* delims=[]" %%a in ('^<f_adress.txt find /v /n ""') do set "$1_%%a=%%~b"& set/a $n+=1
for /f "tokens=1* delims=[]" %%a in ('^<file.txt find /v /n ""') do set "$2_%%a=%%~b"& set/a $m+=1
if %$n% neq %$m% echo Line numbers of tow files must be equal!& pause>nul& exit /B 1

Call:GET_PROXY
for /l %%i in (1,1,%$n%) do (
call echo %%$2_%%i%% loading...
call curl -f -# %$X% "%%$1_%%i%%" -o "%%$2_%%i%%"
)
EXIT/B

:GET_PROXY
set "$x="&set $R=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
for /f "tokens=1,3" %%i in ('REG Query "%$R%"^|Find "Proxy"') do set %%i=%%j
if "%ProxyEnable%"=="0x1" set "$x=-x %ProxyServer%"
GoTo:EOF

Menjoy
07-12-2010, 09:12
Спасибо.

В итоге вышел вот такой вариант через wget


@echo off

wget -b -i servers.txt -o logfile.txt
PING -n 15 127.0.0.1 >nul
"c:\program files\winrar\winrar.exe" e -df -IBCK *.rar *.xls
del *.rar

echo.




© OSzone.net 2001-2012