<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Загрузка файла с сайта с использованием wget]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6903&amp;type=atom" />
	<updated>2012-03-07T06:49:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6903</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Загрузка файла с сайта с использованием wget]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57587#p57587" />
			<content type="html"><![CDATA[<p>Добрый день, подскажите еще такой момент <br />Нужно проверять размер архива до скачки файла и после, если размер остался одинаковым то распаковку не производить. </p><p>Как выполнить проверку размера файла?<br />С использованием dir и for? <br />Сам скрипт выглядит уже вот так.<br /></p><div class="codebox"><pre><code>@echo off 
REM Основной каталог.
SET BASEDIR=%PROGRAMFILES%\wget\
REM имя wget, возможно с подкаталогом.
SET WGET=wget.exe
REM Ссылка без указания конечного файла.
SET URL=http://www.gnivc.ru/html/gnivcsoft/KLADR/
REM Указываем имя файла для скачки. 
SET FILE=BASE.7z
REM Укажем имя файла лога.
SET LOG=wget.log
REM Укажим программы для распаковки архива.
SET UNPACK=&quot;%PROGRAMFILES%\7-Zip\7z.exe&quot;
REM Укажим где лежит архив, он сохраняется в BASEDIR
SET ARHIVE=&quot;%PROGRAMFILES%\wget\%FILE%&quot;
REM Укажим куда извлечь файлы.
SET EXTRACT=&quot;D:\base\&quot;
SET BLAT=&quot;%PROGRAMFILES%\blat\blat.exe&quot;

REM Проверим существует ли файл по ссылке.
&quot;%BASEDIR%%WGET%&quot; --spider %URL%%FILE% -o &quot;%BASEDIR%%LOG%&quot;
REM echo %ERRORLEVEL%
if errorlevel 0 goto NORMAL 
if errorlevel 1 goto GOODBYE 

:NORMAL
REM Запустим закачку.
&quot;%BASEDIR%%WGET%&quot; -t 10 -w 5 -nd -N -a -b %URL%%FILE% -o &quot;%BASEDIR%%LOG%&quot;

REM Проверим существует архив.
if exist %ARHIVE% (
         REM Выполним распоковку архива, если он существует.
         %UNPACK% e %ARHIVE% -o%EXTRACT% -y &gt;&gt; &quot;%BASEDIR%%LOG%&quot;
         %BLAT% -p admin -charset windows-1251 -subject &quot;Kladr was update %DATE%%TIME%&quot; -body &quot;Kladr was update %DATE%%TIME%&quot; -to email -attach &quot;%BASEDIR%%LOG%&quot;
    ) else (
    REM Если файл не существует запишем это.
    echo %ARHIVE% file is missing %DATE%%TIME% &gt;&gt; &quot;%BASEDIR%%LOG%&quot;
    )

:GOODBYE
:exit</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Valera]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2611</uri>
			</author>
			<updated>2012-03-07T06:49:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57587#p57587</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Загрузка файла с сайта с использованием wget]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=57570#p57570" />
			<content type="html"><![CDATA[<p>Добрый день.</p><div class="codebox"><pre><code>@echo off 
REM Основной каталог.
SET BASEDIR=c:\Program Files\GnuWin32\bin\
REM имя wget, возможно с подкаталогом.
SET WGET=wget.exe
REM Ссылка без указания конечного файла.
SET URL=http://www.jensroesner.de/wgetgui/data/
REM Указываем имя файла для скачки. 
SET FILE=wgetgui.zip
REM Укажем имя файла лога.
SET LOG=wget.log
REM Укажим программы для распаковки архива.
SET UNPACK=&quot;c:\Program Files\7-Zip\7z.exe&quot;
REM Укажим где лежит архив, он сохраняется в BASEDIR
SET ARHIVE=&quot;c:\Program Files\GnuWin32\bin\wgetgui.zip&quot;
REM Укажим куда извлечь файлы.
SET EXTRACT=&quot;c:\Program Files\GnuWin32\bin\wgetgui&quot;

REM Проверим существует ли файл по ссылке.
&quot;%BASEDIR%%WGET%&quot; -a -b --spider %URL%%FILE% -o &quot;%BASEDIR%%LOG%&quot;
if errorlevel 0 goto NORMAL 
if errorlevel 1 goto GOODBYE 

:NORMAL
REM Запустим закачку.
&quot;%BASEDIR%%WGET%&quot; -t 10 -w 5 -nd -N -a -b %URL%%FILE% -o &quot;%BASEDIR%%LOG%&quot;

REM Проверим существует архив.
if exist %ARHIVE% (
         REM Выполним распоковку архива, если он существует.
         %UNPACK% e %ARHIVE% -o%EXTRACT% -y &gt;&gt; &quot;%BASEDIR%%LOG%&quot;
    ) else (
    REM Если файл не существует запишем это.
    echo %ARHIVE% file is missing %DATE%%TIME% &gt;&gt; &quot;%BASEDIR%%LOG%&quot;
    echO ---END--- &gt;&gt; &quot;%BASEDIR%%LOG%&quot;
    )

:GOODBYE
exit</code></pre></div><p>Посоветуйте может, что улучшить или поправить. Замечания.</p><p>Вот этот кусок нормально не отрабатывает.<br /></p><div class="quotebox"><blockquote><p>REM Проверим существует ли файл по ссылке.<br />&quot;%BASEDIR%%WGET%&quot; -a -b --spider %URL%%FILE% -o &quot;%BASEDIR%%LOG%&quot;<br />if errorlevel 0 goto NORMAL <br />if errorlevel 1 goto GOODBYE</p></blockquote></div><p>Придется ввести проверку доступности ресурса, через ping к примеру, а потом нужно разбирать вывод команды wget --spider, т.к. она выводит существует файл или нет, выводит именно строку.</p>]]></content>
			<author>
				<name><![CDATA[Valera]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2611</uri>
			</author>
			<updated>2012-03-06T14:35:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=57570#p57570</id>
		</entry>
</feed>
