Показать полную графическую версию : [решено] Загрузка файла из интернета посредством команд CMD
volk1234
13-11-2009, 13:00
Почемуто на VPN соединении не отрабатывает вот этот код -
пишет Not Responding,
я даже добавил отдельной строкой curl -i-s-f игнорирует команду просто...
:KB_download
Call :curl_DETECT
Rem Proxy detect
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 curl %KBURL%
curl -f -s -I %KBURL%
<Nul Set /P XYZ=Testing Connection...
curl -f -s -I %KBURL% %$X%|Find " 200 OK" >Nul
If ErrorLevel 1 Echo ERROR [Not Responding]& Pause& Exit /B 1
For /F "Skip=1 Tokens=1* Delims=: " %%i In (
'curl -f -s -I "%KBURL%" %$X%') Do Set %%i=%%j
If /I "%Content-Type%"=="application/octet-stream" (
Echo.
Echo File Size [%Content-Length% Bytes] ) Else Echo ERROR [Wrong Response]& Pause& Exit /B 2
Echo Downloading %KBFile%...
curl -f -# -O "%KBURL%" %$X%
If Not Exist %KBFile% Echo ERROR [Download not starting].& Pause& Exit /B 3
For %%i In ("%KBFile%") Do (
If %%~zi EQU %Content-Length% Echo File Download Successfully!& Goto :EOF)
Echo ERROR [Download interrupted abnormally]
Pause
Exit /B 4
Goto :EOF
на VPN соединении не отрабатывает вот этот код »
не понял - не отрабатывает только батник или одна команда "'curl -f -s -I" для любого линка тоже?
Здравствуйте amel27 посмотрел на некоторых ветках форума такой вопрос - скачивание файла по FTP, попробывал вами предложенный пример:
@Echo
:: ~Параметры соединения
Set $Host=ftp.drweb.com
Set $User=anonymous
Set $Pass=
:: ~Что и куда копируем
SET $SRC=pub\drweb\bases\drwebase.zip
SET $DST=D:\TEST\drwebase.zip
:: ~Временные файлы
Set $FFtp=%~dpn0.cfg
:: Готовим CFG-файл
Echo.%$User%>"%$FFtp%"
Echo.%$Pass%>>"%$FFtp%"
Echo get "%$SRC%" "%$DST%">>"%$FFtp%"
Echo bye>>"%$FFtp%"
:: Выполняем команду
FTP -s:"%$FFtp%" %$Host%
результат получился таким:
Связь с 87.242.75.131.
220 Welcome to Dr.Web FTP service.
Пользователь (87.242.75.131:(none)):
331 Please specify the password.
230 Login successful.
ftp> get "pub\drweb\bases\drwebase.zip" "D:\TEST\drwebase.zip"
200 PORT command successful. Consider using PASV.
550 Failed to open file.
ftp> bye
221 Goodbye.
Подскажите пожалуйста что неработае этом примере?
посмотрел на некоторых ветках форума такой вопрос - скачивание файла по FTP »тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html
Спасибо amel27 прошелся к ссылке
тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html
тогда встречный вопрос, может есть Help на русском?
Oleg48, поиск (http://www.google.ru/search?hl=ru&source=hp&q=NcFTP&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=lang_ru&aq=null&oq=) творит чудеса
Здравствуйте, FTP , это конечно хорошо, а как скачать с простого урла. Здесь в начале темы проскакивала команда CURL, но она не работает, может нужно ставить какие нибудь утилиты?
volk1234
01-12-2009, 23:02
На самом деле curl работает, просто в моем случае оказалось, что скачивание с сайта microsoft обновлений разрешено для
установленной на компьютере ОС. То есть команда curl -f -# -O "%KBURL%" работает на windows 2003 если %KBURL% -ссылка на обновление
для 2003 ОС. На windows XP эта ссылка у меня не работала. И наоборот.
Воспользовался частично советом amel27, частично покапался в хелпе ncftp, сейчас скачиваю по ftp так:ncftpget -F ftp://ftp.drweb.com/pub/drweb/windows/drweb-500-win.exe
if %errorlevel%==0 (echo "DrWeb - скачался удачно") else echo "DrWeb - ошибка скачивания файла"
Конечно использовал сторонюю утилиту, однако результат меня устраивает.
А по поводу curl , у меня система - XP, по этому, вопрос про скачивание с простого урла, для меня остался открытым!!!
Думаю запоздал, но ...
На счет готовности иНет - не проще ли пингануть сервак перед попыткой скачивания?
что-нить типа такого:
ping -n 1 download.microsoft.com
if not %ErrorLevel%==0 exit
Прошу прощеения за подъем старой темы в топ. Почитал данную ветвь, но так и не понял, можно ли произвести загрузку файла стандартными средствавми, без всяких доп утилит?
endloz, пост #4 (http://forum.oszone.net/post-1260131-4.html) - через VBS
если через PowerShell, то лучше создать новую тему с указанием соответствующей категории
amel27, Спасибо большое. Первый раз кликал без регистрации, поэтому хайд и не открывался. Пойду изучать VBS :)
barsikline
08-05-2010, 20:16
А можно ли сделать так, чтобы батник качал с ftp только измененные данные, к примеру, по мере обновления файлов в папке?
barsikline, для этого лучше использовать синхронизатор файлов. Например Allway Sync поддерживает синхронизацию с ftp-сервера.
barsikline
07-06-2010, 10:37
leonaft
barsikline, для этого лучше использовать синхронизатор файлов. Например Allway Sync поддерживает синхронизацию с ftp-сервера.
Allway Sync - вроде, то что нужно, только не пойму там сообщение как-нибудь можно кинуть всем в сети после синхронизации - что обновлены такие-то файлы? В принципе можно батником из лога достать, и все же может попроще как-нибудь?
volk1234
28-03-2014, 17:40
Народ привет!!
Решил вновь воспользоваться кодом отсюда для своих целей, вроде все должно работать- на выходе бред:
один файл скачивается нормально, второй с ошибкой (я так понимаю ошибка размера файла):
Скрипт:
Set MSSEURL="http://mse.dlservice.microsoft.com/download/7/6/0/760B9188-4468-4FAD-909E-4D16FE49AF47/ruRU/amd64/mseinstall.exe"
Set BASEURL="http://download.microsoft.com/download/DefinitionUpdates/mpam-fe.exe"
Set DURL=%MSSEURL%
Set FileName=mseinstall.exe
Call :F_download
Set DURL=%BASEURL%
Set FileName=mpam-fe.exe
Call :F_download
Goto :EOF
:F_download
Rem Proxy detect
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%
<Nul Set /P XYZ=Testing Connection...
Rem Need to makeup testing
curl -f -s -I %BASEURL% %$X%|Find " 200 OK" >Nul
If ErrorLevel 1 Echo Download ERROR [Not Responding]& Exit /B 2
For /F "Skip=1 Tokens=1* Delims=: " %%i In (
'curl -f -s -I "%DURL%" %$X%') Do Set %%i=%%j
If /I "%Content-Type%"=="application/octet-stream" (
Echo.
Echo File Size [%Content-Length% Bytes] ) Else Echo Download ERROR [Wrong Response]& Exit /B 3
Echo Downloading %FileName%...
curl -f -# -O "%DURL%" %$X%
If Not Exist %FileName% Echo Download ERROR [Download not starting].& Exit /B 4
For %%i In ("%FileName%") Do (
If %%~zi EQU %Content-Length% Echo File Download Successfully!& Exit /B 0)
Echo Download ERROR [Download interrupted abnormally]
Pause
Exit /B 5
Goto :EOF
Вывод скрипта:
Testing Connection...
File Size [13697208 Bytes]
Downloading mseinstall.exe...
######################################################################## 100,0%
File Download Successfully
Testing Connection...
File Size [94886680 Bytes]
Downloading mpam-fe.exe...
######################################################################## 100,0%
Download ERROR [Download interrupted abnormally]
Для продолжения нажмите любую клавишу . . .
Разница в размере файла mpam-fe.exe: curl показывает, что качает файл размером 94 886 680 Bytes
а на диске(смотрю в totalCMD) файл занимает 94 882 576 Bytes
WTF?!
Foreigner
28-03-2014, 20:46
volk1234, bitsadmin скачал файл размером 94902552 байт:
bitsadmin /transfer /download /priority high "http://download.microsoft.com/download/DefinitionUpdates/mpam-fe.exe" "%cd%\mpam-fe.exe"
bitsadmin скачал файл размером 94902552 байт »
Не показатель: mpam-fe.exe и mpam-feX64.exe обновляются ежедневно, а то и по нескольку раз. ;)
mpam-fe.exe и mpam-feX64.exe обновляются ежедневно, а то и по нескольку раз. »
Не может ли быть с этим связана приведённая выше:
curl показывает, что качает файл размером 94 886 680 Bytes
а на диске(смотрю в totalCMD) файл занимает 94 882 576 Bytes »
ситуация? Я-то cURL'ом пользовался от силы раза два-три, когда отвечал в «Скриптах…», не более. Как он себя ведёт, если во время загрузки изменяется сам источник?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.