<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT + JavaScript: два в одном]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=2886&amp;type=atom" />
	<updated>2014-01-15T06:58:53Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=2886</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=79210#p79210" />
			<content type="html"><![CDATA[<p>Еще один вариант. Аналогично способу, предложенному коллегой <strong>Smitis</strong>: удобно работать с js-кодом в редакторах с подсверкой синтаксиса. <br /></p><div class="codebox"><pre><code>
@if (true == false) @end /*
@echo off
cscript //nologo //e:javascript &quot;%~dpnx0&quot; %*
goto :EOF */

WScript.Echo(&#039;Hello from JScript&#039;);
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2014-01-15T06:58:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=79210#p79210</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=52332#p52332" />
			<content type="html"><![CDATA[<p>Вариант с условной компиляцией:</p><div class="codebox"><pre><code>@if (!@_jscript) == (!@_jscript) (echo off)
cscript //nologo //e:javascript &quot;%~dpnx0&quot; %*
goto :eof
@end
 
WScript.Echo(&quot;Hello from JScript&quot;);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[badik]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=21834</uri>
			</author>
			<updated>2011-10-10T07:34:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=52332#p52332</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=32426#p32426" />
			<content type="html"><![CDATA[<p>По мотивам этой темы летом написал скрипт, который частично автоматизирует работу. Теперь, если вы jscript/javascript-разработчик, можете не беспокоиться о такой мелочи, как объединение JS и CMD/BAT, просто сконцентрируйте свое внимание на разработке своего js-скрипта - всю последующую работу выполнит этот скрипт<br /></p><div class="codebox"><pre><code>js2bat some-jscript.js</code></pre></div><p>Он возьмет ваш js-скрипт и автоматически конвертирует его в bat-скрипт, добавив необходимый пролог. Для повышения удобства добавлены следующие аргументы<br /></p><div class="quotebox"><cite>js2bat /h пишет:</cite><blockquote><p>Usage:<br />	JS2BAT [/H]<br />	JS2BAT [file] [/W] [/A:&quot;string&quot;]</p></blockquote></div><p>где<br /><strong>file</strong> - имя преобразуемого файла<br /><strong>/H</strong> - справка о пользовании программой<br /><strong>/W</strong> - использовать WSCRIPT.EXE вместо CSCRIPT.EXE (по умолчанию)<br /><strong>/A:&quot;string&quot;</strong> - дополнительные аргументы для интерпретатора (по умолчанию, если ничего не указано -&nbsp; /NOLOGO)</p><p>Исходный код на странице <a href="http://with-love-from-siberia.blogspot.com/2009/07/js2bat-converter-2.html">JS2BAT Converter</a>.</p><p>Скрипт изначально написан на JScript и конвертирован в bat-аналог с помощью команды<br /></p><div class="codebox"><pre><code>cscript js2bat.js js2bat.js</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2010-01-19T23:18:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=32426#p32426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=30821#p30821" />
			<content type="html"><![CDATA[<p>Думаю вместо <br /></p><div class="codebox"><pre><code>cscript /nologo /e:javascript %0</code></pre></div><p>будет правильней<br /></p><div class="codebox"><pre><code>cscript /nologo /e:javascript %~dpf0</code></pre></div>]]></content>
			<author>
				<name><![CDATA[VitAliS]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24943</uri>
			</author>
			<updated>2009-11-18T11:58:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=30821#p30821</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=20378#p20378" />
			<content type="html"><![CDATA[<p>Jim Lawless видимо предложил это достаточно давно, во времена Win95.<br />Если не заморачиваться с поддержкой старых систем и старых версий WSH, можно делать так:<br /></p><div class="codebox"><pre><code>@set @x=0 /*
@echo off
echo This is CMD-part of script
cscript /nologo /e:javascript %0
goto:eof */

WScript.Echo(&quot;This is JS-part of script&quot;)</code></pre></div><p>Здесь не выводится эхо от первой команды, нет &quot;лишнего&quot; эпилога для завершения пакетного файла и не нужно создавать &quot;лишнюю&quot; функцию в JS.</p>]]></content>
			<author>
				<name><![CDATA[Smitis]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5649</uri>
			</author>
			<updated>2009-03-07T22:16:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=20378#p20378</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT + JavaScript: два в одном]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=20267#p20267" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>rem ( /*
@echo off
cscript /nologo /e:javascript hybrid.bat
goto end
*/ )

   // Jim Lawless
   // jimbo@radiks.net
   // http://www.radiks.net/~jimbo
   //
   // main function is below

function rem() {
   WScript.StdOut.WriteLine(&quot;Hello, world!&quot;);
}

/*
:end   */</code></pre></div><p>В приведенном выше коде используется непротиворечивость синтаксиса интерпретатора CMD и JavaScript:<br />rem - в случае CMD выступает как комментарий, а в случае JavaScript как выполняемая главная функция, т.о. сначала выполняется BAT скрипт, а затем JS.</p><p>PS: Я бы модифицировал строку вызова JS скрипта т.о.:<br /></p><div class="codebox"><pre><code>cscript /nologo /e:javascript %~nx0</code></pre></div><p>© Copyright <a href="http://www.radiks.net/~jimbo/demented/hybrid.htm">WSH in BAT Clothing</a></p><p><em>См. также: <a href="http://forum.script-coding.com/viewtopic.php?id=2914">CMD/BAT + KiXtart: два в одном</a></em></p>]]></content>
			<author>
				<name><![CDATA[-red-]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=11960</uri>
			</author>
			<updated>2009-03-05T10:18:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=20267#p20267</id>
		</entry>
</feed>
