中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 00:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样让VBS写入大文件 查看 781 回复 4
楼 主 怎样让VBS写入大文件 发表于 2008-01-06 17:59 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
sFile = "加密后的文件.exe"
str= (省略1.6W行)
Function MakeFile()

if Len(Trim(sFile)) = 0 Then Wscript.Quit
Set oStream = Createobject("Adodb.Stream")
Set oXML = Createobject("Microsoft.XMLDOM")
Set oElement = oXML.CreateElement("oTmpElement")
oElement.DataType = "bin.hex"
oElement.NodeTypedValue = str
With oStream
.Type = 1
.Mode = 3
.Open
.Write oElement.NodeTypedValue
.SaveToFile sFile
End With
oStream.Close
Set oStream = Nothing
Set oXML = Nothing
Set oElement = Nothing


End Function



就是因为str变量过大.在转换的时候一下子就把我512内存全部吃完了.
我想问问。有没有办法让他分次从文件读取str的内容然后写入(第一次以后是附加)到"加密后的文件.exe"
鄙人基本不懂VBS..
2 发表于 2008-01-06 18:21 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
我在想是不是可以用
TextStream一次读取指定大小的文件.
然后用
Adodb.Stream
写入.

或者分段。让Adodb.Stream分段追加写入
不知道是不是个办法.

[ Last edited by knoppix7 on 2008-1-6 at 06:34 PM ]
3 发表于 2008-01-06 21:46 ·  中国 北京 鹏博士BGP
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
我也不是很懂TextStream
4 发表于 2008-12-16 10:51 ·  中国 北京 联通
新手上路
积分 1
发帖 1
注册 2008-12-11 15:07
17年会员
UID 133544
性别 男
状态 离线
这个问题还真没遇到过哦
5 发表于 2008-12-16 13:19 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
objStream.Position = objStream.Size

然后再write


或者write多份……copy /b合并……

感觉没有必要……吧。

bin转成str浪费太多空间
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
论坛跳转: