|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD |
|
|
CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD
|
|
Старовер Сообщения: 1708 |
Привет.
Пишу утилиту которая в числе прочего устанавливает обновления 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 | |
|