<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: бинарный файл в base64]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9190&amp;type=atom" />
	<updated>2014-01-31T03:34:28Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9190</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79576#p79576" />
			<content type="html"><![CDATA[<p>Спасибо, <strong>Serge Yolkin</strong>. На всякий случай пара ссылок по теме: <br />- <a href="http://support.microsoft.com/kb/269238">Список версий модулей синтаксического анализа XML Microsoft (MSXML)</a><br />- <a href="http://msdn.microsoft.com/en-us/library/jj152146(v=vs.85).aspx">MSXML Roadmap</a></p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-31T03:34:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79576#p79576</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79567#p79567" />
			<content type="html"><![CDATA[<p><strong>dab00</strong><br />Microsoft.XMLDOM проверял на XP 32 SP2/3, W7 32/64, W8 32, W8.1 32: на этих работает, уверен, что и на остальных - тоже. За будущие не ручаюсь: мелкомягкие рекомендуют использовать MSXML2.DOMDocument, хотя он тоже, вроде, с XP...</p>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2014-01-30T19:29:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79567#p79567</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79559#p79559" />
			<content type="html"><![CDATA[<p>Спасибо, <strong>shiz</strong>. Меня бы устроил текущий вариант, без сторонних компонентов, лишь бы парсер Microsoft.XMLDOM оказался на всех осях начиная с XP. <br />Понятно что он шел еще с IE5 и логично ожидать, что имеет место быть во всех следующих, но мелкомягкие они такие...</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T17:47:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79559#p79559</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79558#p79558" />
			<content type="html"><![CDATA[<p>На всякий случай. Тема в коллекции <a href="http://forum.script-coding.com/viewtopic.php?id=2848">кодирование по алгоритму base64</a>.<br /></p><div class="quotebox"><cite>The gray Cardinal пишет:</cite><blockquote><p>Используются объекты MSXml2.DOMDocument и ADODB.Stream</p></blockquote></div><p>Также приведены решения с использованием сторонних COM-объектов.</p>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2014-01-30T17:26:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79558#p79558</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79555#p79555" />
			<content type="html"><![CDATA[<p>Спасибо, <strong>omegastripes</strong>.</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T17:03:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79555#p79555</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79554#p79554" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>dab00 пишет:</cite><blockquote><p>будет ли этот код работать во всех Windows начиная с XP.</p></blockquote></div><p>Работает:<br />Windows 7 HB, SP1, x64<br />VM VirtualBox чистая WinXP Professional SP3</p><div class="quotebox"><cite>dab00 пишет:</cite><blockquote><p>Такой вот &quot;жесткий&quot; рецепт <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p></blockquote></div><p>Благодарю за патч - помогло.</p>]]></content>
			<author>
				<name><![CDATA[omegastripes]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29228</uri>
			</author>
			<updated>2014-01-30T16:59:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79554#p79554</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79532#p79532" />
			<content type="html"><![CDATA[<p>Так не спорю же, согласен. Когда мне нужно было работать с Named/Unnamed аргументами, как <a href="http://forum.script-coding.com/viewtopic.php?pid=74910#p74910">здесь</a> например, я использовал классический прием - слэш. <br />А здесь и аргументов то нет, если бы замутил на умняках - типа варианты расширения (в коде - &#039;.b64&#039;) или префикс (в коде - &#039;new-&#039;) - дело другое. <br />Да и последнее время больше с линуксовым форматом приходится работать, вдруг перепутаю <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />. </p><p>На самом деле спасибо, <strong>Rumata</strong>, сразу так все недостатки (или не все еще) нашли и разложили, все в точку. <br />Может на XP кто затестит, с парсером там проблем не будет? А еще Виста в природе иногда встречается...</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T12:43:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79532#p79532</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79531#p79531" />
			<content type="html"><![CDATA[<p>На счет ключей (с тире или слешем). Сложно сказать, что лучше - тире или слеш. Так уж принято, что в винде изначально ключи идут со слешами, но есть несколько утилит, где используется тире (ping, netstat, ftp). У юникосвых утилит все ключи с тире или двойным тире (posix-формат). </p><p>А еще программно удобно обращаться к аргументам с помощью объекта WScript.Arguments.Unnamed, а к ключам - с WScript.Arguments.Named.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2014-01-30T12:15:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79531#p79531</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79528#p79528" />
			<content type="html"><![CDATA[<p>OFF: только что потратил часа полтора на запуск WMI CIM Studio в IE11, отдельную тему заводить не буду, здесь расскажу что мне помогло, может кому сохраню время - нужно открыть studio.htm в текстовом редакторе и вставить в самое начало файла:<br /></p><div class="codebox"><pre><code>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;meta http-equiv=&quot;x-ua-compatible&quot; content=&quot;IE=8&quot; &gt;
</code></pre></div><p>И сохранить изменения. Только так, никакие параметры просмотра в режиме совместимости или добавление хоста в зону мне не помогли. Такой вот &quot;жесткий&quot; рецепт <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T10:24:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79528#p79528</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79525#p79525" />
			<content type="html"><![CDATA[<p>Спасибо, <strong>Rumata</strong>. Все замечания по делу. <br />Код не претендует на готовое решение, меня больше интересует результат, т.к. планирую применить в одном приложении. Но постараюсь исправить недостатки - для красоты <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p><p>UPD: с учетом замечаний уважаемого <strong>Rumata</strong> исправил, спасибо еще раз, на счет префикса ключей - можно и слэш, по-моему так удобнее, кто-то привык --ключ</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T07:03:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79525#p79525</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79524#p79524" />
			<content type="html"><![CDATA[<p>1. base64 файлы создаются в каталоге оригинального файла, а не в текущем калаоге<br />2. бинарные файлы создаются с префиксом &quot;new-&quot; ко всему пути, а не к имени файла<br /></p><div class="codebox"><pre><code>
copy /b %COMSPEC% c:\Temp
cscript b64.vbs -t C:\Temp.cmd.exe
cscript b64.vbs -b C:\Temp\cmd.exe.b64
</code></pre></div><p>3. нестандартные для Windows ключи -t, -b (тире вместо привычного слеша /t, /b. Хотя разработчики из Рэдмонда сами же и не следуют правилу)<br />4. непонятен смысл ключа -t. Обычно когда что-то во что-то кодируют использют /encode, /e, -e. А когда декодируют - /decode, /d, -d. <br />5. жестко заданное имя программы в справке (WScript.ScriptName или WScript.ScriptFullName лучше. Нет?)</p><p>Конвертация bin-&gt;b64-&gt;bin прошла успешно (win7 Enterprise 64-bit SP1)</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2014-01-30T06:49:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79524#p79524</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: бинарный файл в base64]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79523#p79523" />
			<content type="html"><![CDATA[<p>Всем привет. Решал вопрос, озвученный в заголовке. Вопрос: будет ли этот код работать во всех Windows начиная с XP. <br />Если у кого есть возможность, сообщите пожалуйста если ошибка вылетит. Вроде бы все должно, но мало ли. У меня на&nbsp; 8.1 х64 работает как надо.<br /></p><div class="codebox"><pre><code>
&#039; converter of binary into base64 and vise versa

errString = &quot;Examples: &quot; &amp; vbCrLf &amp; _
    &quot;- binary into base64: &quot; &amp; WScript.ScriptName &amp; _
    &quot; -e myPicture.jpeg myDll.dll&quot; &amp; vbCrLf &amp; _    
    &quot;- base64 into binary: &quot; &amp; WScript.ScriptName &amp; _
    &quot; -d myPicture.jpeg.b64 myDll.dll.b64&quot;

If WScript.Arguments.Count &lt; 2 Then    
  WScript.Echo &quot;Error: Not enough arguments&quot; &amp; vbCrLf &amp; errString
  WScript.Quit
End If
wa = Right(LCase(WScript.Arguments(0)), 1)
If Not (wa = &quot;e&quot; Or wa = &quot;d&quot;) Then  
  WScript.Echo &quot;Error: Invalid named arguments&quot; &amp; vbCrLf &amp; errString
  WScript.Quit
End If

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
For i=1 To WScript.Arguments.Count - 1
  If Not fso.FileExists(WScript.Arguments(i)) Then
    WScript.Echo &quot;Error: File &quot; &amp; WScript.Arguments(i) &amp; &quot; not found&quot; &amp; vbCrLf &amp; errString
    WScript.Quit
  End If
  If wa = &quot;e&quot; Then WScript.Echo toBase64(WScript.Arguments(i))
  If wa = &quot;d&quot; Then WScript.Echo toBinary(WScript.Arguments(i))
Next

Function toBase64(file)  
  With CreateObject(&quot;ADODB.Stream&quot;)
    .Type = 1
    .Open
    .LoadFromFile(file)
    bytes = .Read    
  End With
  With CreateObject(&quot;Microsoft.XMLDOM&quot;).createElement(&quot;tmp&quot;)
    .DataType = &quot;bin.base64&quot;
    .NodeTypedValue = bytes
    base64 = .Text
  End With
  newfile = fso.GetFileName(fso.GetFile(file)) &amp; &quot;.b64&quot;
  fso.CreateTextFile(newfile, True).Write(base64)  
  toBase64 = &quot;toBase64: &quot; &amp; file &amp; &quot; &gt;&gt;&gt; &quot; &amp; newfile &amp; &quot; : OK&quot;
End Function

Function toBinary(file)
  With fso.OpenTextFile(file, 1)
    base64 = .ReadAll
    .Close
  End With
  With CreateObject(&quot;Microsoft.XMLDOM&quot;).createElement(&quot;tmp&quot;)
    .DataType = &quot;bin.base64&quot;    
    .Text = base64
    bytes = .NodeTypedValue
  End With
  With CreateObject(&quot;ADODB.Stream&quot;)
    .Type = 1
    .Open
    .Write bytes
    newfile = &quot;new-&quot; &amp; Replace(fso.GetFileName(fso.GetFile(file)), &quot;.b64&quot;, vbNullString)
    .SaveToFile newfile, 2
  End With
  toBinary = &quot;toBinary: &quot; &amp; file &amp; &quot; &gt;&gt;&gt; &quot; &amp; newfile &amp; &quot; : OK&quot;
End Function
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2014-01-30T04:33:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79523#p79523</id>
		</entry>
</feed>
