Написание бинарных файлов - общеизвестно сложная задача в VBScript. Единственные прямые файловые операции, предоставляемые VBScript, находятся в объекте FileSystemObject, который поддерживает только написание текстовых файлов. Единственным приемлемым вариантом является использование объектов ADO Stream , что по-прежнему громоздко, поскольку VBScript не поддерживает передачу созданных сценариями байтовых массивов в объекты COM, что необходимо для возможности записи произвольных двоичных данных.
Вот метод, использующий потоки ADO, который, вероятно, не будет работать, но может привести вас к правильному решению.
adTypeBinary = 1
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT binary_data FROM dbo.data_table", "connection string..."
Set strm = CreateObject("ADODB.Stream")
strm.Type = adTypeBinary
strm.Open
strm.Write rs.Fields("binary_data").GetChunk( _
LenB(rs.Fields("binary_data").Value))
strm.SaveToFile "binarydata.bin"
strm.Close
rs.Close
Я экспериментировал с этим кодом, используя Access, и, к сожалению, он, похоже, не работал. Я не получил те же двоичные данные, которые были в созданной мной таблице, но я не потрудился зайти в шестнадцатеричный редактор, чтобы увидеть, что было по-другому.
Если вы получаете ошибки от операции ADO, вы можете получить фактические сообщения , добавив «On Error Resume Next» в начало скрипта и используя этот код.
For Each err In rs.ActiveConnection.Errors
WScript.Echo err.Number & ": " & err.Description
Next