<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: запуск консольного приложения с чтением его вывода]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=923</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=923&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: запуск консольного приложения с чтением его вывода».]]></description>
		<lastBuildDate>Thu, 08 Jul 2010 10:23:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: запуск консольного приложения с чтением его вывода]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=37443#p37443</link>
			<description><![CDATA[<p>Пример чтения данных со <strong>скрытой</strong> консоли:</p><p><strong>JScript:</strong><br />В примере WScript.Echo работает как WriteLine. Для отображения графических предупреждений можно воспользоваться функцией MsgBox.</p><div class="codebox"><pre><code>if (WScript.FullName.indexOf(&quot;WScript.exe&quot;)!=-1) 
{
    WshShell=WScript.CreateObject(&quot;WScript.Shell&quot;);
    WshShell.Run(&quot;%WinDir%\\System32\\CScript.exe \&quot;&quot;+WScript.ScriptFullName+&quot;\&quot;&quot;, 0);
    WScript.Quit();
}

var vbe = new ActiveXObject(&#039;ScriptControl&#039;);
vbe.Language = &#039;VBScript&#039;;
vbe.AddCode(&quot;dim buffer&quot;);

function MsgBox(a)
{
    vbe.CodeObject.buffer = a;
    vbe.eval(&quot;MsgBox(buffer)&quot;);
}

var WshShell=WScript.CreateObject(&quot;WScript.Shell&quot;), 
WshScriptExec=WshShell.Exec(&quot;cmd.exe&quot;);

WshScriptExec.StdIn.WriteLine(&quot;chcp 1251&quot;);
WshScriptExec.StdIn.WriteLine(&quot;dir&quot;);
WshScriptExec.StdIn.WriteLine(&quot;exit&quot;);

MsgBox(WshScriptExec.StdOut.ReadAll());</code></pre></div><p><strong>VBScript</strong><br /></p><div class="codebox"><pre><code>if Instr(1,WScript.FullName,&quot;WScript.exe&quot;,1) &gt; 0 Then
    Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
    WshShell.Run &quot;CScript &quot;&quot;&quot; &amp; WScript.ScriptFullName &amp; &quot;&quot;&quot;&quot;,0
    WScript.Quit
End if

Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)
Set WshExec = WshShell.Exec(&quot;cmd&quot;)
With WshExec.StdIn
    .WriteLine &quot;chcp 1251&quot;
    .WriteLine &quot;dir&quot;
    .WriteLine &quot;exit&quot;
End With

MsgBox WshExec.StdOut.ReadAll</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Thu, 08 Jul 2010 10:23:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=37443#p37443</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: запуск консольного приложения с чтением его вывода]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=6661#p6661</link>
			<description><![CDATA[<p>В примере запускается командный интерпретатор, затем по очереди выполняется несколько команд, затем считывается весь вывод этих команд.<br /></p><div class="codebox"><pre><code>Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
Set WshExec = WshShell.Exec(&quot;cmd.exe /q /k echo off&quot;)
WshExec.StdIn.WriteLine &quot;chcp 1251&gt;nul&quot;
WshExec.StdIn.WriteLine &quot;cd /d &quot;&quot;%ProgramFiles%&quot;&quot; &amp;&amp; dir&quot;
WshExec.StdIn.WriteLine &quot;exit&quot;
Set TextStream = WshExec.StdOut
Str = TextStream.ReadAll
WScript.Echo Str</code></pre></div><p>Метод ReadAll при этом ожидает появления всех данных в потоке вывода.<br />Автор примера - <strong>wisgest</strong>.<br />Любопытно, что следующие команды могут привести к различным результатам:<br /></p><div class="codebox"><pre><code>chcp 1251&gt;nul
cd /d &quot;%ProgramFiles%&quot; &amp;&amp; dir</code></pre></div><div class="codebox"><pre><code>chcp 1251&gt;nul &amp;&amp; cd /d &quot;%ProgramFiles%&quot; &amp;&amp; dir</code></pre></div><p>В первом случае вывод может оказаться в кодировке Windows-1251, а во втором - в cp866.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Wed, 05 Dec 2007 18:33:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=6661#p6661</guid>
		</item>
	</channel>
</rss>
