<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Обработка команды в CMD через VBS]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6536</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6536&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Обработка команды в CMD через VBS».]]></description>
		<lastBuildDate>Fri, 09 Dec 2011 15:55:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Обработка команды в CMD через VBS]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=54409#p54409</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>У меня есть запрос, который корректно срабатывает через CMD:</p></blockquote></div><p>Да ну? Не верю.</p><p>По вызову:</p><p>1. Перенаправление организует командный процессор, так что вызывать придётся именно его.<br />2. Кавычки в строковых константах достаточно удваивать.<br />3. Лучше использовать .Run с параметром ожидания.<br />4. Путь к скрипту надо указывать полностью.<br />5. Чтобы меньше путаться, лучше разделить формирование самой команды и её вызов в отдельные переменные.</p><p>По формату:<br />1. Разобраться, как правильно задавать фильтры.<br />2. Надо либо разобраться, как формируются значения времени в двенадцатичасовом (<a href="http://en.wikipedia.org/wiki/12-hour_notation">12-hour clock</a>) формате:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim arrDateTimes
Dim elem


arrDateTimes = Array( _
    CDate(&quot;31.12.2011 00:00:00&quot;), _
    CDate(&quot;31.12.2011 00:00:01&quot;), _
    CDate(&quot;31.12.2011 00:59:59&quot;), _
    CDate(&quot;31.12.2011 01:00:00&quot;), _
    CDate(&quot;31.12.2011 01:00:01&quot;), _
    CDate(&quot;31.12.2011 11:59:59&quot;), _
    CDate(&quot;31.12.2011 12:00:00&quot;), _
    CDate(&quot;31.12.2011 12:00:01&quot;), _
    CDate(&quot;31.12.2011 23:59:59&quot;) _
)

For Each elem In arrDateTimes
    WScript.Echo elem, vbTab, ShowEnUsDateTime(elem)
Next

WScript.Quit 0

Function ShowEnUsDateTime(dtDateTime)
    SetLocale(&quot;en-us&quot;)
    ShowEnUsDateTime = FormatDateTime(dtDateTime, vbShortDate) &amp; &quot; &quot; &amp; FormatDateTime(dtDateTime, vbLongTime)
    SetLocale(&quot;ru&quot;)
End Function</code></pre></div><div class="quotebox"><blockquote><div class="codebox"><pre><code>31.12.2011      12/31/2011 12:00:00 AM
31.12.2011 00:00:01      12/31/2011 12:00:01 AM
31.12.2011 00:59:59      12/31/2011 12:59:59 AM
31.12.2011 01:00:00      12/31/2011 1:00:00 AM
31.12.2011 01:00:01      12/31/2011 1:00:01 AM
31.12.2011 11:59:59      12/31/2011 11:59:59 AM
31.12.2011 12:00:00      12/31/2011 12:00:00 PM
31.12.2011 12:00:01      12/31/2011 12:00:01 PM
31.12.2011 23:59:59      12/31/2011 11:59:59 PM</code></pre></div></blockquote></div><p>либо научиться использовать имеющиеся для этого средства.</p><p>Итог всех выкладок:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim strCommand

With WScript.CreateObject(&quot;WScript.Shell&quot;)
    strCommand = &quot;cscript.exe &quot;&quot;&quot; &amp; .ExpandEnvironmentStrings(&quot;%SystemRoot%\system32\eventquery.vbs&quot;) &amp; _
    &quot;&quot;&quot; /fi &quot;&quot;Type eq Error&quot;&quot; /fi &quot;&quot;Datetime eq &quot; &amp; _
    GetDateTimeForEventQuery(CDate(CStr(Date()) &amp; &quot; 00:00:00&quot;)) &amp; &quot;-&quot; &amp; _
    GetDateTimeForEventQuery(CDate(CStr(Date()) &amp; &quot; 23:59:59&quot;)) &amp; &quot;&quot;&quot; /v&quot;
    
    .Run &quot;cmd.exe /c &quot;&quot;&quot; &amp; strCommand &amp; &quot; &gt;&quot;&quot;c:\error.txt&quot;&quot;&quot;, 1, True
End With

WScript.Quit 0

Function GetDateTimeForEventQuery(dtDateTime)
    SetLocale(&quot;en-us&quot;)
    GetDateTimeForEventQuery = FormatDateTime(dtDateTime, vbShortDate) &amp; &quot;,&quot; &amp; Replace(FormatDateTime(dtDateTime, vbLongTime), &quot; &quot;, &quot;&quot;)
    SetLocale(&quot;ru&quot;)
End Function</code></pre></div><p>Ну, и, напоследок: на мой взгляд, проще самому выполнить запрос к журналам посредством «Win32_NTLogEvent».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 09 Dec 2011 15:55:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=54409#p54409</guid>
		</item>
		<item>
			<title><![CDATA[Обработка команды в CMD через VBS]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=54399#p54399</link>
			<description><![CDATA[<p>Доброго времени суток.<br />Вопрос:<br />есть eventquery.vbs(Windows 2003), которая работает с логами системы. У меня есть запрос, который корректно срабатывает через CMD: </p><div class="codebox"><pre><code>cscript EVENTQUERY.vbs /FI &quot;Type eq warning and datetime eq 12/01/11,00:00:01AM-12/01/11,11:59:59PM&quot; /v&gt; c:/warning.txt</code></pre></div><p>Необходимо ее запустить через VBS.</p><p>Использую вот так:</p><div class="codebox"><pre><code>Set objShell = CreateObject(&quot;WScript.Shell&quot;)
Set OBJ1 = objShell.Exec(&quot;cscript EVENTQUERY.vbs /FI &quot; &amp; chr(34) &amp; &quot;Type eq error and datetime eq &quot; &amp; Month(date) &amp; &quot;/&quot; &amp; day(date) &amp; &quot;/&quot; &amp; year(date) &amp; &quot;00:00:01AM-&quot; &amp; Month(date) &amp; &quot;/&quot; &amp; day(date) &amp; &quot;/&quot; &amp; year(date) &amp; &quot;,11:59:59PM&quot; &amp; chr(34) &amp; &quot; /v&gt; c:/error.txt&quot;)
WScript.Sleep 1000
set obj1 = nothing</code></pre></div><p>Не подскажете, в чем ошибка?:|<br />PS.<br />Пробовал кавычки двойные убрать.<br />Пробовал написать полный адрес <br />&nbsp; ....cscript c:\windows\system32\EVENTQUERY.vbs /FI ....&quot;</p>]]></description>
			<author><![CDATA[null@example.com (KaKTuZ)]]></author>
			<pubDate>Fri, 09 Dec 2011 10:46:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=54399#p54399</guid>
		</item>
	</channel>
</rss>
