<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; vbs: проверка файла по дате в каталоге]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8242&amp;type=atom" />
	<updated>2013-04-18T09:20:16Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8242</id>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71521#p71521" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>volnistiy пишет:</cite><blockquote><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Подробности того, что, как и куда пишется.</p></blockquote></div><p>Есть каталог и подкаталоги в нем, ...<br /><strong>Rom5</strong><br />Спасибо за отклик, Ваше предложение тоже как вариант можно попробовать</p></blockquote></div><p>Раз есть подкаталоги (Вы бы уже озвучили имя родительской для них папки), то в команду DIR добавьте ключи &quot;/s /b&quot;, а т.к. ключ &quot;/b&quot; выведет список всех файлов с указанием пути, но без указания аттрибутов размера-даты, то усечение (команда FINDSTR /C:&quot;.201&quot;) протокола различий делайте не по &quot;.201&quot;, а по части пути либо даже имен файлов - Вы бы привели для понимания образец имен создаваемых файлов...</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2013-04-18T09:20:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71521#p71521</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71520#p71520" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Подробности того, что, как и куда пишется.</p></blockquote></div><p>Есть каталог и подкаталоги в нем, в них камеры пишут свои файлы (их(камер) несколько и пишутся они в разные подкаталоги) они пишут файлы раз в 10 мин. т.е. подкаталог пополняется на 1 файл раз в 10 мин. Так вот нужен скрипт который запускается раз в 10 мин и смотрит по подкаталогам за наличием нового файла... если новый появился то, 0 иначе формировать текстовый файл например 1.txt этот файл будет означать что одна или несколько камер не записали файл а значит не работает</p><p><strong>Rom5</strong><br />Спасибо за отклик, Ваше предложение тоже как вариант можно попробовать</p>]]></content>
			<author>
				<name><![CDATA[volnistiy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29999</uri>
			</author>
			<updated>2013-04-18T08:32:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71520#p71520</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71512#p71512" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>volnistiy пишет:</cite><blockquote><p>...<br />скрипт запускается раз в 10 мин с помощью планировщика и смотрит, если в течение 10 мин новый файл появился то 0, иначе создает лог, например 1.txt<br />...</p></blockquote></div><p>Мне казалось, что при запуске планирощиком такое простым батником можно сделать, с таким алгоритмом:<br /> - создать первоначальный список файлов папки - пустой текст.файл, например, c:\log\list_old.txt; <br /> - вывод списка файлов папки камеры командой <strong>&quot;dir&quot;</strong> в текст.файл, например, c:\log\list_now.txt;<br /> - формирование лога различий командой <strong>&quot;fc&quot;</strong> между текст.файлами c:\log\list_now.txt и c:\log\list_old.txt в файл c:\log\list_new.txt;<br /> - т.к. в лог различий попадают лишние данные, то командой <strong>&quot;find&quot;</strong> оставляем в логе только строки с символами присущими только строкам файлов (например, начало года &quot;.201&quot; либо еще что-то).<br /> - переименование текущего списка в старый - для будущих сравнений - &quot;rename c:\log\list_now.txt list_old.txt&quot;;</p><p>т.е. батник приблизительно таков:<br /></p><div class="codebox"><pre><code>
::: вывод списка только файлов папки камеры с сортировкой по дате - list_now.txt
DIR /a-d /od /-c &quot;c:\camera\*.*&quot; &gt; &quot;c:\log\list_now.txt&quot;

::: если предыдущего списка list_old.txt еще нет - создаем пустой
IF NOT EXIST &quot;c:\log\list_old.txt&quot; ECHO. &gt; &quot;c:\log\list_old.txt&quot;

::: сравнение файлов и вывод различий в list_new.txt
IF EXIST &quot;c:\log\list_new.txt&quot; DEL &quot;c:\log\list_new.txt&quot;
FC /L /C /N &quot;c:\log\list_old.txt&quot; &quot;c:\log\list_now.txt&quot; &gt; &quot;c:\log\list_new.txt&quot;

::: усечение файла различий (поиск по наличию фразы начала года в дате файла) 
::: в файл для отправки - list_send.txt
FINDSTR /C:&quot;.201&quot; &quot;c:\log\list_new.txt&quot; &gt; &quot;c:\log\list_send.txt&quot;

::: переименование списка для дальнейших сравнений
DEL &quot;c:\log\list_old.txt&quot;
REN &quot;c:\log\list_now.txt&quot; &quot;list_old.txt&quot;
</code></pre></div><p>Единственный глюк не удалось на тесте победить - в силу того, что при FC-сравнении в лог различий дважды попадает строка, с которой файлы начинают различаться, то в отправляемом протоколе при наличии новых файлов всегда будет дублирующаяся строка последнего файла от предыдущей проверки.</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2013-04-17T20:29:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71512#p71512</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71505#p71505" />
			<content type="html"><![CDATA[<p>Подробности того, что, как и куда пишется.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-04-17T17:38:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71505#p71505</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71500#p71500" />
			<content type="html"><![CDATA[<p>Alexii<br />ищу такую тему очень давно... а вот можно доработать этот скрипт под такую вещь...<br />есть ip-camera которая пишет файлы кусками по 10мин. и вот тут надо отследить такой момент, скрипт запускается раз в 10 мин с помощью планировщика и смотрит, если в течение 10 мин новый файл появился то 0, иначе создает лог, например 1.txt и дальше я его отсылаю по почте своей программкой. возможно такое?</p>]]></content>
			<author>
				<name><![CDATA[volnistiy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29999</uri>
			</author>
			<updated>2013-04-17T15:09:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71500#p71500</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71492#p71492" />
			<content type="html"><![CDATA[<p>Угу. Либо запускать с параметром «//b»:<br /></p><div class="codebox"><pre><code> //B            Пакетный режим: подавляются отображение ошибок и запросов сценария</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-04-17T06:41:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71492#p71492</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71491#p71491" />
			<content type="html"><![CDATA[<p>Спасибо Вам огромное <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> теперь всё кул.<br />Я правильно понимаю, чтоб убрать вывод на экран сообщения после каждого выполнения цикла, мне нужно исключить из скрипта WScript.Echo?</p>]]></content>
			<author>
				<name><![CDATA[deffo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29990</uri>
			</author>
			<updated>2013-04-17T06:04:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71491#p71491</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71490#p71490" />
			<content type="html"><![CDATA[<p>Издержки интерпретации. Вот что значит не проверять код полностью.</p><p>Уберите «objFSO» из указанной строки, чтобы она выглядела так:<br /></p><div class="codebox"><pre><code>If DateDiff(&quot;d&quot;, .GetFile(strPath).DateCreated, Now()) = 0 Then</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-04-17T06:00:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71490#p71490</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71489#p71489" />
			<content type="html"><![CDATA[<p>Получается вот что. Скрипт запускается, проверяет наличие файли и говорит что он &quot;exist&quot;<br />Затем судя по скрипту должен запуститься цикл на &quot;0&quot; и &quot;1&quot;, и тут происходит ошибка<br />Строка 13; Символ 9. Переменная objFSO не определена, код 800A01F4</p>]]></content>
			<author>
				<name><![CDATA[deffo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29990</uri>
			</author>
			<updated>2013-04-17T05:54:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71489#p71489</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71488#p71488" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Обычно поступают наоборот: 0 — успех, всё, что больше нуля — свидетельствует о той или иной ошибке. Но как скажете (не проверялось):<br /></p><div class="codebox"><pre><code>Option Explicit

Dim strPath
Dim lngErrCode


strPath = &quot;d:\backup\file1.zip&quot;

With WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
    If .FileExists(strPath) Then
        WScript.Echo &quot;File [&quot; &amp; strPath &amp; &quot;] exists.&quot;
        
        If DateDiff(&quot;d&quot;, objFSO.GetFile(strPath).DateCreated, Now()) = 0 Then
            WScript.Echo &quot;Creation date of file [&quot; &amp; strPath &amp; &quot;] is today.&quot;
            lngErrCode = 1
        Else
            WScript.Echo &quot;Creation date of file [&quot; &amp; strPath &amp; &quot;] is not today.&quot;
            lngErrCode = 0
        End If
    Else
        WScript.Echo &quot;File [&quot; &amp; strPath &amp; &quot;] not found.&quot;
        lngErrCode = 0
    End If
End With

WScript.Quit lngErrCode</code></pre></div></blockquote></div><p>Честно говоря не особо важно, нолик будет или единичка <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Спасибо вам огромное, побегу тестить <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Отпишусь)</p>]]></content>
			<author>
				<name><![CDATA[deffo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29990</uri>
			</author>
			<updated>2013-04-17T05:46:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71488#p71488</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71487#p71487" />
			<content type="html"><![CDATA[<p>Обычно поступают наоборот: 0 — успех, всё, что больше нуля — свидетельствует о той или иной ошибке. Но как скажете (не проверялось):<br /></p><div class="codebox"><pre><code>Option Explicit

Dim strPath
Dim lngErrCode


strPath = &quot;d:\backup\file1.zip&quot;

With WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
    If .FileExists(strPath) Then
        WScript.Echo &quot;File [&quot; &amp; strPath &amp; &quot;] exists.&quot;
        
        If DateDiff(&quot;d&quot;, objFSO.GetFile(strPath).DateCreated, Now()) = 0 Then
            WScript.Echo &quot;Creation date of file [&quot; &amp; strPath &amp; &quot;] is today.&quot;
            lngErrCode = 1
        Else
            WScript.Echo &quot;Creation date of file [&quot; &amp; strPath &amp; &quot;] is not today.&quot;
            lngErrCode = 0
        End If
    Else
        WScript.Echo &quot;File [&quot; &amp; strPath &amp; &quot;] not found.&quot;
        lngErrCode = 0
    End If
End With

WScript.Quit lngErrCode</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-04-17T05:30:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71487#p71487</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71486#p71486" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Расскажите, что Вы подразумеваете под:<br /></p><div class="quotebox"><blockquote><p>…передал бы мне…</p></blockquote></div><p>?</p></blockquote></div><p>Я имею ввиду вывод работы скрипта. Завершился, проверив файл - 1, не подтвердил наличие - 0</p>]]></content>
			<author>
				<name><![CDATA[deffo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29990</uri>
			</author>
			<updated>2013-04-17T04:59:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71486#p71486</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71456#p71456" />
			<content type="html"><![CDATA[<p>Расскажите, что Вы подразумеваете под:<br /></p><div class="quotebox"><blockquote><p>…передал бы мне…</p></blockquote></div><p>?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-04-16T14:05:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71456#p71456</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[vbs: проверка файла по дате в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71454#p71454" />
			<content type="html"><![CDATA[<p>Ребята, всем привет. В vbs ни ногой. Поясню проблему. Развернул систему мониторинга на zabbix и хочу с windows хостов дёргать данные по бекапу, с помощью внешнего скрипта, а затем передавать данные в свой zabbix.<br />Суть такова: есть каталог, куда ежедневно делается бекап, например d:/backup/file1.zip в определённое время суток.<br />Нужен скрипт, который бы проверил наличие файла в каталоге, сверил бы дату его создания с текущей датой и в случае совпадения двух событий передал бы мне &quot;1&quot; - всё хорошо, или &quot;0&quot; - всё плохо.<br />Присматривал скрипты на форуме, да чётко таких нет, а под себя переделать пока уровень знания языка не позволяет.<br />Заранее спасибо</p>]]></content>
			<author>
				<name><![CDATA[deffo]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29990</uri>
			</author>
			<updated>2013-04-16T13:57:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71454#p71454</id>
		</entry>
</feed>
