<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: как получить результат работы внешнего скрипта]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5074</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5074&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: как получить результат работы внешнего скрипта».]]></description>
		<lastBuildDate>Wed, 27 Oct 2010 09:04:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40906#p40906</link>
			<description><![CDATA[<div class="quotebox"><cite>GreyBear пишет:</cite><blockquote><p>я правильно помню, что для передачи через WScript.Stdout необходимо запускать оба скрипта посредством cscript.exe?</p></blockquote></div><p>Да:<br /></p><div class="quotebox"><cite>StdOut Property (WScript) пишет:</cite><blockquote><p>The <strong>StdIn</strong>, <strong>StdOut</strong>, and <strong>StdErr</strong> streams can be accessed while using CScript.exe only. Attempting to access these streams while using WScript.exe produces an error.</p></blockquote></div><div class="quotebox"><cite>GreyBear пишет:</cite><blockquote><p>а вариант с передачей из второго скрипта кода завершения через WScript.Quit(&lt;код&gt;) не подойдет? выглядит попроще.</p></blockquote></div><p>В данном случае — нет: errorlevel — 32-битное целое.<br /></p><div class="quotebox"><cite>ExitProcess Function пишет:</cite><blockquote><p>Ends the calling process and all its threads.<br /></p><div class="codebox"><pre><code>VOID WINAPI ExitProcess(
  __in          UINT uExitCode
);</code></pre></div><p><strong>Parameters</strong><br /><em>uExitCode</em> <br />The exit code for the process and all threads.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 27 Oct 2010 09:04:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40906#p40906</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40897#p40897</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Запускаете внешний скрипт посредством WshShell.Exec. Во внешнем скрипте пишете выходные данные на WScript.Stdout, в основном скрипте читаете их же посредством WshExec.Stdout, наподобие <a href="http://forum.script-coding.com/viewtopic.php?pid=25186#p25186">этого</a>. Примеров работы на форуме было много, в том числе и на JScript.</p></blockquote></div><p>я правильно помню, что для передачи через WScript.Stdout необходимо запускать оба скрипта посредством cscript.exe?</p><p>а вариант с передачей из второго скрипта кода завершения через WScript.Quit(&lt;код&gt;) не подойдет? выглядит попроще.</p>]]></description>
			<author><![CDATA[null@example.com (GreyBear)]]></author>
			<pubDate>Wed, 27 Oct 2010 06:47:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40897#p40897</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40857#p40857</link>
			<description><![CDATA[<div class="quotebox"><cite>putrsa пишет:</cite><blockquote><p>В данном случае результат получаю через 2 секунды (я думаю для такого скрипта очень много)</p></blockquote></div><p>Я тоже так думаю <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br /><strong>0001.vbs</strong><br /></p><div class="codebox"><pre><code>Option Explicit

Const WshFinished = 1

Dim objWshShell
Dim objWshExec

Dim strOutText


WScript.Echo &quot;&gt;&quot;, Timer

Set objWshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)
Set objWshExec = objWshShell.Exec(&quot;cscript.exe //nologo &quot;&quot;C:\Песочница\003\0002.vbs&quot;&quot; 2&quot;)

Do Until objWshExec.Status = WshFinished
    strOutText = strOutText &amp; objWshExec.StdOut.ReadAll
    objWshExec.StdErr.ReadAll
    
    WScript.Sleep 10
Loop

WScript.Echo strOutText

Set objWshExec  = Nothing
Set objWshShell = Nothing

WScript.Echo &quot;&lt;&quot;, Timer

WScript.Quit 0</code></pre></div><p><strong>0002.vbs</strong><br /></p><div class="codebox"><pre><code>Option Explicit

Dim objArgs
Dim strValue

Set objArgs = WScript.Arguments

If objArgs.Count &gt; 0 Then
    Select Case objArgs.Item(0)
        Case &quot;0&quot;
            strValue = &quot;січень&quot;
        Case &quot;1&quot;
            strValue = &quot;лютий&quot;
        Case &quot;2&quot;
            strValue = &quot;березень&quot;
        Case &quot;3&quot;
            strValue = &quot;квітень&quot;
        Case &quot;4&quot;
            strValue = &quot;травень&quot;
        Case &quot;5&quot;
            strValue = &quot;червень&quot;
        Case &quot;6&quot;
            strValue = &quot;липень&quot;
        Case &quot;7&quot;
            strValue = &quot;серпень&quot;
        Case &quot;8&quot;
            strValue = &quot;вересень&quot;
        Case &quot;9&quot;
            strValue = &quot;жовтень&quot;
        Case &quot;10&quot;
            strValue = &quot;листопад&quot;
        Case &quot;11&quot;
            strValue = &quot;грудень&quot;
    End Select
    
    WScript.StdOut.Write strValue
End If

Set objArgs = Nothing

WScript.Quit 0</code></pre></div><div class="quotebox"><cite>образцы 3-х запусков пишет:</cite><blockquote><div class="codebox"><pre><code>&gt; 56319,16
березень
&lt; 56319,3</code></pre></div><div class="codebox"><pre><code>&gt; 56504,57
березень
&lt; 56504,71</code></pre></div><div class="codebox"><pre><code>&gt; 56520,11
березень
&lt; 56520,27</code></pre></div></blockquote></div><p>У Вас что-то тормозит исполнение WinAPI CreateProcess(): антивирус, фаерволл и т.п. У меня подобное было. Простой запуск «cmd.exe» мог растянуться на несколько секунд.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 26 Oct 2010 11:46:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40857#p40857</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40853#p40853</link>
			<description><![CDATA[<p>В данном случае результат получаю через 2 секунды (я думаю для такого скрипта очень много)<br />основной скрипт<br /></p><div class="codebox"><pre><code>var WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;);
var Outobj=WshShell.Exec(&quot;cscript D:\\scripts\\mes_propis.js 8&quot;);
StrOut= Outobj.Stdout.ReadAll();
WScript.StdOut.Write(StrOut);</code></pre></div><p>запускаемый скрипт<br /></p><div class="codebox"><pre><code>var ms=&#039;0&#039;;
var oArg=WScript.Arguments;
if (WScript.Arguments.Count()&gt;0) ms=oArg(0); 
switch (ms) 
{
 case &#039;0&#039; : mes=&#039;січень&#039;; break;
 case &#039;1&#039; : mes=&#039;лютий&#039;; break;
 case &#039;2&#039; : mes=&#039;березень&#039;; break;
 case &#039;3&#039; : mes=&#039;квітень&#039;; break;
 case &#039;4&#039; : mes=&#039;травень&#039;; break;
 case &#039;5&#039; : mes=&#039;червень&#039;; break;
 case &#039;6&#039; : mes=&#039;липень&#039;; break;
 case &#039;7&#039; : mes=&#039;серпень&#039;; break;
 case &#039;8&#039; : mes=&#039;вересень&#039;; break;
 case &#039;9&#039; : mes=&#039;жовтень&#039;; break;
 case &#039;10&#039; : mes=&#039;листопад&#039;; break;
 case &#039;11&#039; : mes=&#039;грудень&#039;; break;
}
WScript.StdOut.Write(mes);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Tue, 26 Oct 2010 10:32:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40853#p40853</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40851#p40851</link>
			<description><![CDATA[<div class="quotebox"><cite>putrsa пишет:</cite><blockquote><p>Очень медленно получается, если несколько скриптов подряд обрабатывать вобще капут.</p></blockquote></div><p>Например?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 26 Oct 2010 10:12:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40851#p40851</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40847#p40847</link>
			<description><![CDATA[<p>Очень медленно получается, если несколько скриптов подряд обрабатывать вобще капут. Может есть быстрее способ, без Stdout? Может ли WSH работать напрямую с памятью или создавать свой буфер?</p>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Tue, 26 Oct 2010 09:19:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40847#p40847</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40726#p40726</link>
			<description><![CDATA[<p>Запускаете внешний скрипт посредством WshShell.Exec. Во внешнем скрипте пишете выходные данные на WScript.Stdout, в основном скрипте читаете их же посредством WshExec.Stdout, наподобие <a href="http://forum.script-coding.com/viewtopic.php?pid=25186#p25186">этого</a>. Примеров работы на форуме было много, в том числе и на JScript.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 22 Oct 2010 10:47:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40726#p40726</guid>
		</item>
		<item>
			<title><![CDATA[JScript: как получить результат работы внешнего скрипта]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=40719#p40719</link>
			<description><![CDATA[<p>Хотелось бы сделать так: Первый скрипт запускает с параметрами второй, второй отрабатывает и возвращает результаты своей работы (например сумму прописью), которые дальше можно обрабатывать в первом скрипте</p>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Fri, 22 Oct 2010 09:18:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=40719#p40719</guid>
		</item>
	</channel>
</rss>
