中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 23:53
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样让VBS写入大文件
可打印版本  779 / 4
第1楼 knoppix7 发表于 2008-01-06 17:59
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
怎样让VBS写入大文件
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楼 knoppix7 发表于 2008-01-06 18:21
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
我在想是不是可以用
TextStream一次读取指定大小的文件.
然后用
Adodb.Stream
写入.

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

[ Last edited by knoppix7 on 2008-1-6 at 06:34 PM ]
第3楼 s11ss 发表于 2008-01-06 21:46
银牌会员 发帖 566 积分 2,098
我也不是很懂TextStream
第4楼 kevin4000 发表于 2008-12-16 10:51
新手上路 发帖 1 积分 1
这个问题还真没遇到过哦
第5楼 slore 发表于 2008-12-16 13:19
铂金会员 发帖 2,478 积分 5,212
objStream.Position = objStream.Size

然后再write


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

感觉没有必要……吧。

bin转成str浪费太多空间
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023