<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: запуск самораспаковывающихся архивов MS-DOS]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=14</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=14&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: запуск самораспаковывающихся архивов MS-DOS».]]></description>
		<lastBuildDate>Sat, 08 Jul 2006 07:17:34 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBScript: запуск самораспаковывающихся архивов MS-DOS]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=26#p26</link>
			<description><![CDATA[<p>Cкрипт распаковывает комплект квартальных отчётов 1С:Предприятия v7.7. Скрипт просто запускает все EXE-файлы в указанной папке (с некоторыми нюансами) и может быть прописан в реестре как одна из команд контекстного меню проводника для папок. Скрипт получает единственный параметр - путь к папке, в которой находятся файлы самораспаковывающихся архивов. В папке должны обязательно находиться файлы &quot;Ver.id&quot; и &quot;Loadlst.txt&quot; (такая проверка производится для уменьшения вероятности того, что скрипт ошибочно запущен &quot;не на той&quot; папке). Алгоритм работы: скрипт по очереди запускает каждый найденный в папке EXE-файл, а затем удаляет его.</p><p>Нюансы: самораспаковывающийся архив MS-DOS &quot;вываливает&quot; своё содержимое не в каталог, в котором находится сам, а в текущий каталог. Если просто запустить такой архив методом &quot;Run&quot; объекта &quot;WScript.Shell&quot;, содержимое архива будет распаковано в каталог, где расположен сам запускающий vb-скрипт. Чтобы обойти это, создаётся временный CMD-файл, в котором даётся команда &quot;CD&quot;, устанавливающая нужный текущий каталог, а затем сама команда запуска архива MS-DOS.</p><p>Если самораспаковывающийся архив MS-DOS задаёт интерактивный вопрос о перезаписи существующих файлов, ему можно ответить автоматически с помощью команды перенаправления &quot;&lt; ФайлСОтветом.txt&quot;. В данном случае во временном файле ответа находится единственный символ &quot;a&quot;, означающий &quot;All&quot;, т.е., &quot;перезаписывать все файлы&quot;.</p><p>Способы назначения команд контекстного меню проводника подробно описаны здесь:<br /><a href="http://www.script-coding.com/ContMenuExpl.html">http://www.script-coding.com/ContMenuExpl.html</a><br />Остаётся только добавить, что команда запуска скрипта в реестре может выглядеть, например, так:<br /></p><div class="codebox"><pre><code>wscript.exe &quot;C:\Program Files\QRepUnpack.vbs&quot; &quot;%1&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sat, 08 Jul 2006 07:17:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=26#p26</guid>
		</item>
	</channel>
</rss>
