Windows下,怎么用原生支持的脚本修改一个二进制文件

[复制链接]
 楼主| Simon21ic 发表于 2016-3-21 22:23 | 显示全部楼层 |阅读模式
本帖最后由 Simon21ic 于 2016-3-21 22:24 编辑

VSFOS也基本准备了差不多了,每个模块编译后的文件需要做一个修改,把文件大小写到固定的位置
IAR并不具备这个功能,当然,也不考虑其他的脚本,如果可以用python,那就分分钟搞定了,只能用windows原生就支持的脚本,比如VBS

简单写了一下,貌似并不困难
不过貌似VBS里,字节数组不能简单按照数组的方式赋值,会报类型匹配错误,这个要怎么解?


  1. If Wscript.Arguments.Count <> 1 Then
  2.         Wscript.Quit
  3. End If

  4. Dim FSO, Stream, FileName, FileSize, Buffer
  5. FileName = Wscript.Arguments(0)
  6. Set FSO = CreateObject("Scripting.FileSystemObject")
  7. Set Stream = CreateObject("Adodb.Stream")

  8. With Stream
  9.         .Type = 1: .Mode = 3: .Open: .LoadFromFile FileName: Buffer = .Read
  10. End With

  11. FileSize = Stream.Size
  12. Buffer(8) = CByte(FileSize And &HFF)

  13. Stream.Write Buffer
  14. Stream.SaveToFile FileName, 2
  15. Stream.Close
  16. Set Stream = Nothing
  17. Set FSO = Nothing
  18. Wscript.Quit



 楼主| Simon21ic 发表于 2016-3-21 23:12 | 显示全部楼层
搞定,VBS脚本真麻烦,先转成字符串,在通过XMLDOM转成byte array
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部