|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD |
|
CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD
|
Старовер Сообщения: 1708 |
Профиль | Отправить PM | Цитировать Привет.
Пишу утилиту которая в числе прочего устанавливает обновления Windows. Если оно есть в папке со скриптом все хорошо. Но хотелось бы для уменьшения размера скрипта (дабы не распространять с ним обновление) чтобы скрипт в случае отсутствия обновлениий запрашивал загрузку с заранее известного адреса. Желательно без доп. утилит. Переменные- |
|
------- Отправлено: 11:16, 01-11-2009 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Без подключения к интернету приведенная выше команда всеравно создает файл размером 4223 кб.
|
------- Отправлено: 18:12, 08-11-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать volk1234, так что мешает сначала проверить подключение с ключом "-I", а потом при успехе (отсутствии ошибки) уже запускать закачку?.... можно даже заранее считать размер файла, а потом по окончании закачки сверить и сделать вывод об успехе или неудаче
|
Отправлено: 11:17, 09-11-2009 | #12 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Ну наверное лень разбиратся, почему не работает. И незнание как проверить с ошибкой ли закончилась попытка проверить хост.
Просто у меня скрипт работает с этими файлами и их наличие критично. Хотя ваш пример с проверкой url и сравниванием размера файла с удовольствием посмотрел бы И позаимствовал бы... |
------- Последний раз редактировалось volk1234, 11-11-2009 в 00:32. Отправлено: 00:10, 11-11-2009 | #13 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать volk1234, дык я выше давал примеры, еще вариант:
@Echo Off SetLocal EnableExtensions Set KBFile1=WindowsServer2003-KB967715-x86-ENU.exe Set KB_Url1=http://download.microsoft.com/download/1/A/2/1A234937-9572-408D-ACC9-3F99915CAC67/%KBFile1% CALL :GET_PROXY CALL :GET_FILE "%KBFile1%" "%KB_Url1%" EXIT :GET_FILE <Nul Set /P XYZ=Testing Connection... curl -f -s -I "%~2" %$X%|Find " 200 OK" >Nul If Not ErrorLevel 1 (Echo OK) Else Echo ERROR!& Exit /B 1 <Nul Set /P XYZ=Get File Size... For /F "Tokens=2 Delims=: " %%i In ( 'curl -f -s -I "%~2" %$X%^|Find "Content-Length:"') Do Set KBSize1=%%i If Defined KBSize1 (Echo Content-Length: %KBSize1% Bytes) Else ERROR!& Exit /B 2 Echo Download "%~1"... curl -f -# -O "%~2" %$X% If Not Exist "%~1" Echo ERROR! Download not starting.& Exit /B 3 For %%i In ("%~1") Do ( If %%~zi EQU %KBSize1% Echo File Download Successfully!& Exit /B 0) Echo ERROR! Download interrupted abnormally.& Echo. Exit /B 4 :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 |
Последний раз редактировалось amel27, 12-11-2009 в 11:42. Отправлено: 04:29, 11-11-2009 | #14 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Почемуто не отрабатывала часть скрипта с прокси (ругалась на синтаксис)-
Убрал эту часть, оставил только загрузку с определением соединения. Странности с закачкой файла без соединения с интернетом остались. Возможно это связанно с маршрутизацией в моей сети. Однако если отключить сетевую карту проверка соединения срабатывала. Вот какую петрушку показала команда из скрипта вышеcurl -f -s -I "%~2" Без соединения: С VPN соединением с интернетом То есть по какой- то причине удается соединится с "неким" сервером и скачать текстовый файл размером 4 223 байта - поэтому и не срабатывает ошибка и проверка на размер файла |
------- Последний раз редактировалось volk1234, 11-11-2009 в 22:34. Отправлено: 21:39, 11-11-2009 | #15 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата volk1234:
Цитата volk1234:
Цитата volk1234:
|
|||
Отправлено: 05:59, 12-11-2009 | #16 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Можно еще проверять по веб вервру- IIS мало кто использует )
Да и тип файла должен быть application а не текст. А текст - это наверное страничка провайдера... |
------- Отправлено: 11:01, 12-11-2009 | #17 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата volk1234:
@Echo Off SetLocal EnableExtensions Set KBFile1=WindowsServer2003-KB967715-x86-ENU.exe Set KB_Url1=http://download.microsoft.com/download/1/A/2/1A234937-9572-408D-ACC9-3F99915CAC67/%KBFile1% CALL :GET_PROXY CALL :GET_FILE "%KBFile1%" "%KB_Url1%" EXIT :GET_FILE <Nul Set /P XYZ=Testing Connection... curl -f -s -I "%~2" %$X%|Find " 200 OK" >Nul If ErrorLevel 1 Echo ERROR [Not Responding]& Exit /B 1 For /F "Skip=1 Tokens=1* Delims=: " %%i In ( 'curl -f -s -I "%~2" %$X%') Do Set %%i=%%j If /I "%Content-Type%"=="application/octet-stream" ( Echo OK [%Content-Length% Bytes] ) Else Echo ERROR [Wrong Response]& Exit /B 2 Echo Downloading "%~1"... curl -f -# -O "%~2" %$X% If Not Exist "%~1" Echo ERROR [Download not starting].& Exit /B 3 For %%i In ("%~1") Do ( If %%~zi EQU %Content-Length% Echo File Download Successfully!& Exit /B 0) Echo ERROR [Download interrupted abnormally] Exit /B 4 :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 |
|
Отправлено: 12:09, 12-11-2009 | #18 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Проверил на выделенке на работе - вроде работает. Еще проверю дома на VPN...,
А для чего ключи /B 0-4 ??? |
------- Последний раз редактировалось volk1234, 12-11-2009 в 15:36. Отправлено: 14:58, 12-11-2009 | #19 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата volk1234:
|
|
Отправлено: 01:47, 13-11-2009 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Разрыв pppoe подключения и запуск приложения посредством cmd | antikiller_bm | Скриптовые языки администрирования Windows | 1 | 29-12-2009 12:58 | |
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами | Oleg48 | Скриптовые языки администрирования Windows | 2 | 18-11-2009 11:08 | |
Интернет - Настройка интернета на windows 7 (посредством mer) | Frag-o-Matik | Microsoft Windows 7 | 0 | 13-09-2009 11:37 | |
CMD/BAT - [решено] Нужна помощ в переписании команд из cmd в command.com, или на чтонибудь еще | TruLander | Скриптовые языки администрирования Windows | 6 | 20-04-2009 17:32 | |
Помогите пожалуйста не срабатывает команда из*cmd файла запускаемого из RanOnceEx.cmd | vovchiku | Автоматическая установка Windows 2000/XP/2003 | 6 | 25-09-2007 23:38 |
|