Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Загрузка файла из интернета посредством команд CMD (http://forum.oszone.net/showthread.php?t=155289)

volk1234 01-11-2009 11:16 1258091

Загрузка файла из интернета посредством команд CMD
 
Привет.

Пишу утилиту которая в числе прочего устанавливает обновления Windows. Если оно есть в папке со скриптом все хорошо.
Но хотелось бы для уменьшения размера скрипта (дабы не распространять с ним обновление) чтобы скрипт в случае отсутствия обновлениий
запрашивал загрузку с заранее известного адреса. Желательно без доп. утилит.

Переменные-
Код:

%KBFile1% (уже заданное имя файла)
%KBFile2% (уже заданное имя файла)
%KB1_url% (соответственно путь для закачки файла обновлений 1)
%KB2_url%  (соответственно путь для закачки файла обновлений 2)


avolkov2009 02-11-2009 13:57 1259237

Про утилитку wget слыхали? Может помочь.

volk1234 02-11-2009 14:46 1259286

Цитата:

Цитата volk1234
Желательно без доп. утилит. »

Ну если нельзя без доп утилит, то вопрос снимаю.

amel27 03-11-2009 09:38 1260131

Цитата:

Цитата avolkov2009
Про утилитку wget слыхали? Может помочь »

тогда уж лучше curl, по крайней мере для этих задач

Цитата:

Цитата volk1234
Ну если нельзя без доп утилит, то вопрос снимаю »

штатно можно через VBS, который вызвать из CMD:
Script.CMD

Код:

@Echo Off

Set ROOT=C:\TEST

Set KBFile1=autoit-v3.2.12.1-sfx.exe
Set KB_Url1=http://www.autoitscript.com/autoit3/files/archive/autoit/autoit-v3.2.12.1-sfx.exe

Set KBFile2=autoit-docs-v3.3.1.4-src.exe
Set KB_Url2=http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-docs-v3.3.1.4-src.exe

Call :KB_TEST "%KBFile1%" "%KB_Url1%"
Call :KB_TEST "%KBFile2%" "%KB_Url2%"

Echo.
PAUSE

EXIT

:KB_TEST
<Nul Set /P $_X="%~1..."

If Exist "%ROOT%\%~1" Echo Ok& Exit /B
<Nul Set /P $_X=Loading

CScript //NoLogo "%~dpn0.vbs" "%ROOT%\%~1" "%~2"
Set ERR=%ErrorLevel%

<Nul Set /P $_X=
If %ERR% EQU 0 (Echo Ok    ) Else Echo ERROR 

Exit /B

Script.VBS

Код:

If Wscript.Arguments.Count=2 Then
  WScript.Quit(HTTPFileGet(Wscript.arguments.Item(1), Wscript.arguments.Item(0)))
Else
  WScript.Quit(1)
End If

Function HTTPFileGet(strFileURL, strFileSave)
  Dim objXMLHTTP, objADOStream, objFSO
  HTTPFileGet = 1

  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
  Set objADOStream = CreateObject("ADODB.Stream")
  Set objFSO = Createobject("Scripting.FileSystemObject")

  objXMLHTTP.Open "GET", strFileURL, False
  objXMLHTTP.Send()

  If objXMLHTTP.Status = 200 Then
      objADOStream.Open
      objADOStream.Type = 1

      objADOStream.Write objXMLHTTP.ResponseBody
      objADOStream.Position = 0

      If objFSO.FileExists(strFileSave) Then objFSO.DeleteFile strFileSave

      objADOStream.SaveToFile strFileSave
      objADOStream.Close

      HTTPFileGet = 0
  End If
End Function


P.S. файла для примера взяты от балды, для работы треба XP SP2

volk1234 04-11-2009 01:25 1260986

Я может невнимательно смотрел справку к curl, но как определить подключен ли к интернету компьютер ??
Ибо команда
Код:

curl -O http://.......file.exe
отрабатывает и при подключенном интернете и без него 0_o
только без интернета подключенного получается не файл, а пустышка.

Короче как определить подключен ли комп к интернету из cmd ?

amel27 04-11-2009 08:28 1261090

volk1234, может использовать ключ "-I" ?
Код:

curl -I http://.......file.exe

volk1234 05-11-2009 20:43 1262663

Цитата:

Цитата amel27
volk1234, может использовать ключ "-I" ? »

Не помогает. :(

amel27 06-11-2009 07:00 1262927

volk1234, странно... у меня вроде работает:
Код:

@Echo Off
SetLocal EnableExtensions

Set CURL=%~dp0curl.exe

Set KBFile1=autoit-v3.2.12.1-sfx.exe
Set KB_Url1=http://www.autoitscript.com/autoit3/files/archive/autoit/autoit-v3.2.12.1-sfx.exe

Set KBFile2=autoit-docs-v3.3.1.4-src.exe
Set KB_Url2=http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-docs-v3.3.1.4-src.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!)

<Nul Set /P XYZ=URL "%KB_Url2%" Testing...
"%CURL%" -f -s -I "%KB_Url2%" %$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%
GoTo :EOF


volk1234 06-11-2009 14:23 1263182

Пишу просто
Код:

curl -f -s -I http://download.microsoft.com/download/1/B/3/1B331878-8AF9-4642-94F4-0B0B0A9DD14A/WindowsXP-KB967715-x86-ENU.exe
Ничего не скачивает

Пишу
Код:

curl -O http://download.microsoft.com/download/1/B/3/1B331878-8AF9-4642-94F4-0B0B0A9DD14A/WindowsXP-KB967715-x86-ENU.exe
Скачивает файл WindowsXP-KB967715-x86-ENU.exe

amel27 06-11-2009 15:11 1263222

Цитата:

Цитата volk1234
Ничего не скачивает »

логично, т.к. ключ "-I" только считывает параметры файла - в контексте вопроса о проверке его наличия по линку и проверке наличия интернета, скачать можно и так:
Код:

curl -f -# -O http://download.microsoft.com/download/1/B/3/1B331878-8AF9-4642-94F4-0B0B0A9DD14A/WindowsXP-KB967715-x86-ENU.exe

volk1234 08-11-2009 18:12 1264948

Без подключения к интернету приведенная выше команда всеравно создает файл размером 4223 кб.

amel27 09-11-2009 11:17 1265491

volk1234, так что мешает сначала проверить подключение с ключом "-I", а потом при успехе (отсутствии ошибки) уже запускать закачку?.... можно даже заранее считать размер файла, а потом по окончании закачки сверить и сделать вывод об успехе или неудаче

volk1234 11-11-2009 00:10 1267137

Ну наверное лень разбиратся, почему не работает. И незнание как проверить с ошибкой ли закончилась попытка проверить хост.
Наверное буду использовать wget....
Просто у меня скрипт работает с этими файлами и их наличие критично.
Хотя ваш пример с проверкой url и сравниванием размера файла с удовольствием посмотрел бы :)
И позаимствовал бы...

amel27 11-11-2009 04:29 1267212

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


volk1234 11-11-2009 21:39 1267888

Почемуто не отрабатывала часть скрипта с прокси (ругалась на синтаксис)-
Код:

-x %PROXY%
Убрал эту часть, оставил только загрузку с определением соединения. Странности с закачкой файла без соединения с интернетом остались.
Возможно это связанно с маршрутизацией в моей сети. Однако если отключить сетевую карту проверка соединения срабатывала.

Вот какую петрушку показала команда из скрипта вышеcurl -f -s -I "%~2"
Без соединения:


С VPN соединением с интернетом


То есть по какой- то причине удается соединится с "неким" сервером и скачать текстовый файл размером 4 223 байта -
поэтому и не срабатывает ошибка и проверка на размер файла :shocked:

amel27 12-11-2009 05:59 1268113

Цитата:

Цитата volk1234
не отрабатывала часть скрипта с прокси »

угу, напартачил немного в последнем варианте - исправил

Цитата:

Цитата volk1234
Вот какую петрушку показала команда из скрипта выше »

я не знаток HTML, но по ходу отвечает какой-то прокси HTML-страницей, которая впоследствии должна обрабатывается обозревателем... CURL очевидно не способен обрабатывать такие редиректы - только непосредственые подключения, у меня тоже были траблы с закачкой по линкам типа "http://www.site.com/cgi-bin/getfile.pl?dir/file.ext"

Цитата:

Цитата volk1234
по какой- то причине удается соединится с "неким" сервером и скачать текстовый файл размером 4 223 байта -
поэтому и не срабатывает ошибка и проверка на размер файла »

может проще вбить ожидаемый размер файла в переменную и уже с ним сравнивать?.. маловероятно, что он изменится

volk1234 12-11-2009 11:01 1268249

Можно еще проверять по веб вервру- IIS мало кто использует :))
Да и тип файла должен быть application а не текст.
А текст - это наверное страничка провайдера...

amel27 12-11-2009 12:09 1268287

Цитата:

Цитата volk1234
тип файла должен быть application а не текст »

а это вариант :)
Код:

@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


volk1234 12-11-2009 14:58 1268423

Проверил на выделенке на работе - вроде работает. Еще проверю дома на VPN...,

А для чего ключи /B 0-4 ???

amel27 13-11-2009 01:47 1268940

Цитата:

Цитата volk1234
для чего ключи /B 0-4 ??? »

установка значения переменной окружения ERRORLEVEL при выходе из процедуры, т.е. 0 - успех, 1-4 - коды ошибок, для выбора альтернатив в основном скрипте сразу после "CALL :GET_FILE"

volk1234 13-11-2009 13:00 1269218

Почемуто на 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 1269926

Цитата:

Цитата volk1234
на VPN соединении не отрабатывает вот этот код »

не понял - не отрабатывает только батник или одна команда "'curl -f -s -I" для любого линка тоже?

Oleg48 22-11-2009 15:14 1277209

Здравствуйте 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 1277232

Цитата:

Цитата Oleg48
посмотрел на некоторых ветках форума такой вопрос - скачивание файла по FTP »

тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html

Oleg48 24-11-2009 19:53 1279117

Спасибо amel27 прошелся к ссылке
Цитата:

тогда должны были обратить внимание на особенность FTP.EXE: http://forum.oszone.net/post-1180295-4.html
тогда встречный вопрос, может есть Help на русском?

amel27 26-11-2009 06:54 1280049

Oleg48, поиск творит чудеса

Oleg48 01-12-2009 20:02 1284465

Здравствуйте, FTP , это конечно хорошо, а как скачать с простого урла. Здесь в начале темы проскакивала команда CURL, но она не работает, может нужно ставить какие нибудь утилиты?

volk1234 01-12-2009 23:02 1284634

На самом деле curl работает, просто в моем случае оказалось, что скачивание с сайта microsoft обновлений разрешено для
установленной на компьютере ОС. То есть команда
Код:

curl -f -# -O "%KBURL%"
работает на windows 2003 если %KBURL% -ссылка на обновление
для 2003 ОС. На windows XP эта ссылка у меня не работала. И наоборот.

Oleg48 02-12-2009 00:45 1284689

Воспользовался частично советом 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 1285066

Думаю запоздал, но ...
На счет готовности иНет - не проще ли пингануть сервак перед попыткой скачивания?
что-нить типа такого:
Код:

ping -n 1 download.microsoft.com
if not %ErrorLevel%==0 exit


endloz 30-01-2010 19:13 1334447

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

amel27 31-01-2010 07:26 1334710

endloz, пост #4 - через VBS
если через PowerShell, то лучше создать новую тему с указанием соответствующей категории

endloz 31-01-2010 12:34 1334846

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

barsikline 08-05-2010 20:16 1409519

А можно ли сделать так, чтобы батник качал с ftp только измененные данные, к примеру, по мере обновления файлов в папке?

leonaft 11-05-2010 04:49 1410648

barsikline, для этого лучше использовать синхронизатор файлов. Например Allway Sync поддерживает синхронизацию с ftp-сервера.

barsikline 07-06-2010 10:37 1429189

leonaft
Цитата:

barsikline, для этого лучше использовать синхронизатор файлов. Например Allway Sync поддерживает синхронизацию с ftp-сервера.
Allway Sync - вроде, то что нужно, только не пойму там сообщение как-нибудь можно кинуть всем в сети после синхронизации - что обновлены такие-то файлы? В принципе можно батником из лога достать, и все же может попроще как-нибудь?

volk1234 28-03-2014 17:40 2329818

Народ привет!!

Решил вновь воспользоваться кодом отсюда для своих целей, вроде все должно работать- на выходе бред:
один файл скачивается нормально, второй с ошибкой (я так понимаю ошибка размера файла):
Скрипт:
читать дальше »

Код:

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 2329902

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 2330018

Цитата:

Цитата Foreigner
bitsadmin скачал файл размером 94902552 байт »

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

Iska 29-03-2014 01:39 2330022

Цитата:

Цитата mwz
mpam-fe.exe и mpam-feX64.exe обновляются ежедневно, а то и по нескольку раз. »

Не может ли быть с этим связана приведённая выше:
Цитата:

Цитата volk1234
curl показывает, что качает файл размером 94 886 680 Bytes
а на диске(смотрю в totalCMD) файл занимает 94 882 576 Bytes »

ситуация? Я-то cURL'ом пользовался от силы раза два-три, когда отвечал в «Скриптах…», не более. Как он себя ведёт, если во время загрузки изменяется сам источник?

mwz 29-03-2014 01:47 2330024

Цитата:

Цитата Iska
Не может ли быть с этим связана приведённая выше: »

Я уже об этом думал. Но, как я понял, у автора вопроса это было не единожды -- файл же этот меняется, если мне не изменяет память, максимум четырежды в день.

Я бы скорее грешил на сторонний брандмауэр, в особенности Outpost (если он установлен).

Кстати, файлы эти проверяются по цифровой подписи MS (правой кнопкой -- Свойства -- Цифровые подписи -- двойной щелчок по подписи, и смотреть в следующем выплывшем окне: действительна или нет); т.е. для них можно абсолютно точно сказать, битый файл скачался или нет.

PS
А если смотреть с точки зрения возможности изменения файла в процессе закачки -- то, в принципе, можно периодически переспрашивать в процессе, или по её завершении переспросить размер и дату файла, и если что-то тут изменилось -- перекачать и снова проверить.

volk1234 29-03-2014 11:35 2330131

Походу просто придется отказаться от проверки размера файла....
Может какие нибудь идеи по переделки кода скрипта- ?

volk1234 30-03-2014 12:16 2330480

Хм, изменился размер файла, и ошибка перестала появляться. Хотя я вроде проверял на двух разных базах в течении дня.... :sorry:


Время: 18:53.

Время: 18:53.
© OSzone.net 2001-