Войти

Показать полную графическую версию : [решено] Загрузка файла из интернета посредством команд CMD


Страниц : 1 [2] 3

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

amel27
14-11-2009, 10:56
на VPN соединении не отрабатывает вот этот код »
не понял - не отрабатывает только батник или одна команда "'curl -f -s -I" для любого линка тоже?

Oleg48
22-11-2009, 15:14
Здравствуйте 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.
Подскажите пожалуйста что неработае этом примере?

amel27
22-11-2009, 15:42
посмотрел на некоторых ветках форума такой вопрос - скачивание файла по FTP »тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html

Oleg48
24-11-2009, 19:53
Спасибо amel27 прошелся к ссылке
тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html
тогда встречный вопрос, может есть Help на русском?

amel27
26-11-2009, 06:54
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=) творит чудеса

Oleg48
01-12-2009, 20:02
Здравствуйте, FTP , это конечно хорошо, а как скачать с простого урла. Здесь в начале темы проскакивала команда CURL, но она не работает, может нужно ставить какие нибудь утилиты?

volk1234
01-12-2009, 23:02
На самом деле curl работает, просто в моем случае оказалось, что скачивание с сайта microsoft обновлений разрешено для
установленной на компьютере ОС. То есть команда curl -f -# -O "%KBURL%" работает на windows 2003 если %KBURL% -ссылка на обновление
для 2003 ОС. На windows XP эта ссылка у меня не работала. И наоборот.

Oleg48
02-12-2009, 00:45
Воспользовался частично советом 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, по этому, вопрос про скачивание с простого урла, для меня остался открытым!!!

NiOl
02-12-2009, 14:38
Думаю запоздал, но ...
На счет готовности иНет - не проще ли пингануть сервак перед попыткой скачивания?
что-нить типа такого:
ping -n 1 download.microsoft.com
if not %ErrorLevel%==0 exit

endloz
30-01-2010, 19:13
Прошу прощеения за подъем старой темы в топ. Почитал данную ветвь, но так и не понял, можно ли произвести загрузку файла стандартными средствавми, без всяких доп утилит?

amel27
31-01-2010, 07:26
endloz, пост #4 (http://forum.oszone.net/post-1260131-4.html) - через VBS
если через PowerShell, то лучше создать новую тему с указанием соответствующей категории

endloz
31-01-2010, 12:34
amel27, Спасибо большое. Первый раз кликал без регистрации, поэтому хайд и не открывался. Пойду изучать VBS :)

barsikline
08-05-2010, 20:16
А можно ли сделать так, чтобы батник качал с ftp только измененные данные, к примеру, по мере обновления файлов в папке?

leonaft
11-05-2010, 04:49
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"

mwz
29-03-2014, 01:30
bitsadmin скачал файл размером 94902552 байт »

Не показатель: mpam-fe.exe и mpam-feX64.exe обновляются ежедневно, а то и по нескольку раз. ;)

Iska
29-03-2014, 01:39
mpam-fe.exe и mpam-feX64.exe обновляются ежедневно, а то и по нескольку раз. »
Не может ли быть с этим связана приведённая выше:
curl показывает, что качает файл размером 94 886 680 Bytes
а на диске(смотрю в totalCMD) файл занимает 94 882 576 Bytes »
ситуация? Я-то cURL'ом пользовался от силы раза два-три, когда отвечал в «Скриптах…», не более. Как он себя ведёт, если во время загрузки изменяется сам источник?




© OSzone.net 2001-2012