 |
|
Скачивание файла через http.
Добрый день.
Пробую сделать утилитку, которая будет скачивать файл через 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.
))
Тут только еще нет проверки на архивы.
Просьба помочь с проверкой и дополнениями.
Спасибо.
|
Может это будет проще реализовать через wget?
Подсказали, что это буквально пару строк скрипта.
|
как вариант:
Код:
@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
|
Спасибо.
В итоге вышел вот такой вариант через 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.
|
Время: 22:58.
© OSzone.net 2001-