<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: поиск нескольких фраз в текстовом файле]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5607</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5607&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: поиск нескольких фраз в текстовом файле».]]></description>
		<lastBuildDate>Mon, 21 Mar 2011 12:56:18 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46497#p46497</link>
			<description><![CDATA[<p>Я бы попробал бы так:<br /></p><div class="codebox"><pre><code>objRegExp.Pattern = &quot;(error)|(did\snot\ssuccessfully\scomplete)|(not)|(Insufficient\sdisk\sspace)&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (matiz)]]></author>
			<pubDate>Mon, 21 Mar 2011 12:56:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46497#p46497</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46482#p46482</link>
			<description><![CDATA[<p><strong> Xameleon </strong>, спасибо! буду пробовать...</p>]]></description>
			<author><![CDATA[null@example.com (Elencheg)]]></author>
			<pubDate>Mon, 21 Mar 2011 08:22:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46482#p46482</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46481#p46481</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Возвращает позицию искомой последовательности символов в заданной строке. </p><p> InStr([start, ] string1, string2[, compare])<br />start <br />Позиция, начиная с которой осуществляется поиск. Если аргумент не задан, поиск начинается с первого символа строки. <br />string1 <br />Строка, в которой идет поиск. <br />string2 <br />Искомая последовательность символов. <br />compare <br />Опциональный параметр. Может принимать значения vbVinaryCompare (поиск с учетом регистра) и vbTextCompare (поиск без учета регистра символов). <br />В зависимости от значений входящий параметров функция вернет следующий результат:</p></blockquote></div><p><a href="http://gsbelarus.com/gs/wiki/index.php/VBScript._%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_InStr">Источник</a></p><div class="codebox"><pre><code>Dim String1, String2

String1 = &quot;01.01.2001. Happend an error string&quot;
String2 = &quot;error&quot;

MsgBox Instr(1,String1,String2,1)</code></pre></div><p>Код возвращает позицию слова &quot;error&quot; в строке.</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 21 Mar 2011 08:14:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46481#p46481</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46480#p46480</link>
			<description><![CDATA[<p>сделала вот так, только думаю что не рационально, зато работает: <br /></p><div class="codebox"><pre><code>Option Explicit
Dim oFSO, oFSO_er, oWshNetwork, oCDO, oFolder, oFiles, oFile, oTextFile, objFile, objRegExp
dim strFileName, strComputerName, LogFile, ForReading, strLine
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set oFSO_er = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set oWshNetwork = WScript.CreateObject(&quot;WScript.Network&quot;)
Const BACKUP_LOG_PATH = &quot;C:\Documents and Settings\user\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data&quot;
Const EMAIL_RECIPIENT = &quot;admin@admin.ru&quot;
strFileName = &quot;&quot;
strComputerName = oWshNetwork.ComputerName
ForReading = 1
Set objRegExp = CreateObject(&quot;VBScript.RegExp&quot;) &#039;Создается объект регулярных выражений

objRegExp.Pattern = &quot;error&quot; &#039;Указывается ключевые слова поиска
objRegExp.IgnoreCase = True &#039;Указывается независимость от регистра символов

Set oFolder = oFSO.GetFolder(BACKUP_LOG_PATH)
Set oFiles = oFolder.Files
For Each oFile in oFiles
If oFSO.GetExtensionName(oFile.Name) = &quot;log&quot; Then
  If DateValue(oFile.DateLastModified) = Date() Then
    LogFile = oFile.Name
    strFileName = BACKUP_LOG_PATH &amp; &quot;\&quot; &amp; LogFile
    &#039; Проверка размера лог-файла 
       If  oFile.Size = &quot;0&quot; Then 
         EmailLogNullFileSize
       End If
    &#039; Начало проверки файла на наличие  &quot;Error&quot;
    Set objFile = oFSO.OpenTextFile(strFileName, ForReading) &#039; Открываем файл на чтение
    Dim ErrText
    ErrText=&quot;&quot;
    Do Until objFile.AtEndOfStream
      strLine = objFile.ReadLine &#039;Читаем 1 строку файла
      If objRegExp.Test(strLine) Then &#039;Проверяем наличие слова &quot;Error&quot; в строке
      ErrText = ErrText &amp; objFile.ReadLine &amp; VbCrLf   
      End If
    Loop
    objFile.Close &#039; Закрываем файл
    &#039; Конец проверки файла на наличие  &quot;Error&quot;
&#039;снова открываем
        objRegExp.Pattern = &quot;The operation did not successfully complete&quot;
        Set objFile = oFSO.OpenTextFile(strFileName, ForReading) &#039; Открываем файл на чтение
    Dim ErrText1
    ErrText1=&quot;&quot;
    Do Until objFile.AtEndOfStream
      strLine = objFile.ReadLine &#039;Читаем 1 строку файла
      If objRegExp.Test(strLine) Then &#039;Проверяем наличие слова  в строке
      ErrText1 = ErrText1 &amp; objFile.ReadLine &amp; VbCrLf   
      End If
    Loop
    objFile.Close &#039; Закрываем файл
&#039;снова открываем-ищем слова 
        objRegExp.Pattern = &quot;Insufficient disk space&quot;
        Set objFile = oFSO.OpenTextFile(strFileName, ForReading) &#039; Открываем файл на чтение
    Dim ErrText2
    ErrText2=&quot;&quot;
    Do Until objFile.AtEndOfStream
      strLine = objFile.ReadLine &#039;Читаем 1 строку файла
      If objRegExp.Test(strLine) Then &#039;Проверяем наличие слова  в строке
      ErrText2 = ErrText2 &amp; objFile.ReadLine &amp; VbCrLf   
      End If
    Loop
    objFile.Close &#039; Закрываем файл
         If (ErrText=&quot;&quot; and ErrText1=&quot;&quot; and ErrText2=&quot;&quot;) Then 
      EmailLogNTBackupSuccess &#039; Если ошибок в лог-файле не обнаружено
    Else
      EmailLogErorFound(ErrText) &#039; Если есть ошибки в лог-файле обнаружены
    End If
  End If &#039; Если нет файла с текущей датой
End If &#039; Если нет лог-файлов
Next

If strFileName = &quot;&quot; Then
  EmailLogNotFound
End If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Elencheg)]]></author>
			<pubDate>Mon, 21 Mar 2011 07:58:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46480#p46480</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46479#p46479</link>
			<description><![CDATA[<p>1. эту функцию не пробовала даже использовать, не знакома с ней....(<br />2. пример лога:<br /></p><div class="codebox"><pre><code>NTBackup log on APPLE for 3/20/2011 :

Backup Status
Operation: Backup
Active backup destination: File
Media name: &quot;D.bkf created 3/20/2011 at 4:00 AM&quot;

Volume shadow copy creation: Attempt 1.
Backup (via shadow copy) of &quot;D: New Volume&quot;
Backup set #1 on media #1
Backup description: &quot;Set created 5/19/2010 at 6:35 AM&quot;
Media name: &quot;D.bkf created 3/20/2011 at 4:00 AM&quot;

Backup Type: Normal

Backup started on 3/20/2011 at 4:02 AM.
Backup completed on 3/20/2011 at 7:26 AM.
Directories: 9338
Files: 235960
Bytes: 66,737,714,368
Time:  3 hours,  23 minutes, and  15 seconds

----------------------

Verify Status
Operation: Verify After Backup
Active backup destination: File
Active backup destination: \\test\e$\apple\D.bkf

Verify of &quot;D:&quot;
Backup set #1 on media #1
Backup description: &quot;Set created 5/19/2010 at 6:35 AM&quot;
Verify started on 3/20/2011 at 7:26 AM.

Error: An inconsistency was encountered in the requested backup file.
Verify completed on 3/20/2011 at 8:09 AM.
Directories: 7516
Files: 184572
Different: 0
Bytes: 47,217,485,031
Time:  43 minutes and  6 seconds

----------------------</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Elencheg)]]></author>
			<pubDate>Mon, 21 Mar 2011 07:54:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46479#p46479</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46478#p46478</link>
			<description><![CDATA[<p>Возникло 2 вопроса<br />1) А функция instr не подошла ?<br />2) Можно на пример лога взглянуть ?</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 21 Mar 2011 07:43:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46478#p46478</guid>
		</item>
		<item>
			<title><![CDATA[VBS: поиск нескольких фраз в текстовом файле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=46476#p46476</link>
			<description><![CDATA[<p>Добрый день, уважаемые коллеги!<br />Очень трубуется помощь в написании скрипта.<br />Путем долгих усилий написала скрипт по отслеживанию логов бэкапов-уведомление по почте если:<br />1 размер файла лога нулевой<br />2 отсутствует лог<br />3 есть ли слово error</p><p>Так вот вся проблема в том, что поик организован с помошью регулярных выражений только по слову ERROR, но мне то нужна еще проверка по словам: did not successfully complete/not/Insufficient disk space.<br />Сильно затрудняюсь с этим, ка кэто сделать - записать в массив слова или можно задавать несколько шаблонов регулярных выражений?<br />вот такой кусок скрипта:<br /></p><div class="codebox"><pre><code>Option Explicit
Dim oFSO, oFSO_er, oWshNetwork, oCDO, oFolder, oFiles, oFile, oTextFile, objFile, objRegExp
dim strFileName, strComputerName, LogFile, ForReading, strLine
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set oFSO_er = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set oWshNetwork = WScript.CreateObject(&quot;WScript.Network&quot;)
Const BACKUP_LOG_PATH = &quot;C:\Documents and Settings\user\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data&quot;
Const EMAIL_RECIPIENT = &quot;admin@admin.ru&quot;
strFileName = &quot;&quot;
strComputerName = oWshNetwork.ComputerName
ForReading = 1
Set objRegExp = CreateObject(&quot;VBScript.RegExp&quot;) &#039;Создается объект регулярных выражений

objRegExp.Pattern = &quot;error&quot; &#039;Указывается ключевые слова поиска
objRegExp.IgnoreCase = True &#039;Указывается независимость от регистра символов

Set oFolder = oFSO.GetFolder(BACKUP_LOG_PATH)
Set oFiles = oFolder.Files
For Each oFile in oFiles
If oFSO.GetExtensionName(oFile.Name) = &quot;log&quot; Then
  If DateValue(oFile.DateLastModified) = Date() Then
    LogFile = oFile.Name
    strFileName = BACKUP_LOG_PATH &amp; &quot;\&quot; &amp; LogFile
    &#039; Проверка размера лог-файла 
       If  oFile.Size = &quot;0&quot; Then 
         EmailLogNullFileSize
       End If
    &#039; Начало проверки файла на наличие  &quot;Error&quot;
    Set objFile = oFSO.OpenTextFile(strFileName, ForReading) &#039; Открываем файл на чтение
    Dim ErrText
    ErrText=&quot;&quot;
    Do Until objFile.AtEndOfStream
      strLine = objFile.ReadLine &#039;Читаем 1 строку файла
      If objRegExp.Test(strLine) Then &#039;Проверяем наличие слова &quot;Error&quot; в строке
      ErrText = ErrText &amp; objFile.ReadLine &amp; VbCrLf   
      End If
    Loop
    objFile.Close &#039; Закрываем файл
    &#039; Конец проверки файла на наличие  &quot;Error&quot;
    If ErrText=&quot;&quot; Then 
      EmailLogNTBackupSuccess &#039; Если ошибок в лог-файле не обнаружено
    Else
      EmailLogErorFound(ErrText) &#039; Если есть ошибки в лог-файле обнаружены
    End If
  End If &#039; Если нет файла с текущей датой
End If &#039; Если нет лог-файлов
Next

If strFileName = &quot;&quot; Then
  EmailLogNotFound
End If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Elencheg)]]></author>
			<pubDate>Mon, 21 Mar 2011 04:45:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=46476#p46476</guid>
		</item>
	</channel>
</rss>
