[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理能否以十六进制方式修改文件内容?

高手帮忙做个批处理BAT
处理前,如下:

处理后,把上图第9字节显示的01批量改为下图显示的00

这是要处理的文档 链接: http://pan.baidu.com/s/10Xjxs 密码: 9gxi

TOP

什么系统呢 win7可以试试POWERSHELL
  1. $list = [System.IO.Directory]::GetFiles($PWD, '*.bcwav', 'AllDirectories')
  2. ForEach ($file in  $list) {
  3.     $fs=new-object io.filestream $file,open;
  4.     $fs.seek(9,0);
  5.     $fs.writebyte("0");
  6.     $fs.flush();
  7.     $fs.close();
  8. }
复制代码
1

评分人数

TOP

不知道hextool  这样用对不对。
对比了修改结果看样子是对的。
  1. hextool 01.bcwav 9h 1 00
复制代码

TOP

不加H也可以。不清楚有什么区别
  1. hextool 01.bcwav 9 1 11
复制代码

TOP

回复 3# terse
XP系统

TOP

回复 4# 依山居
可以用 但是要一个一个转换 我要的是批量转换

TOP

python3 练手。没有计算机基础,花了很时间去理解和学习处理字节流。
  1. #python二进制修改bcwav文件
  2. # 批处理BAT以十六进制方式修改文件内容
  3. # http://www.bathome.net/thread-37858-1-1.html
  4. # 相关: Nintendo 3DS Banner Wave / .BCWAV file format
  5. # https://gbatemp.net/threads/nintendo-3ds-banner-wave-bcwav-file-format.320705/
  6. # python str与bytes之间的转换
  7. # http://blog.csdn.net/yatere/article/details/6606316
  8. import os
  9. #方法一 只处理单个文件
  10. #"r+b"选项开启二进制读写文件模式
  11. f=open("01.bcwav","r+b")
  12. f.seek(9)#指针移动到这个位置进行写操作会覆盖这个地址的数据。
  13. f.write(b'\x00')
  14. f.close()
  15. #方法二 历遍当前目录批量处理
  16. extension=".bcwav" #需要处理的文件后缀
  17. for l in os.listdir(): #默认仅list当前目录
  18.     l=l.lower()
  19.     #把文件名转成小写进行判断
  20.     lext=os.path.splitext(l)
  21.     if extension in lext[1] and os.path.isfile(l):
  22.         f=open(l,"r+b")
  23.         f.seek(9)
  24.         f.write(b'\x00')
  25.         f.flush()
  26.         f.close()
  27.         print(l,"文件已经修改")
复制代码

TOP

回复 8# 依山居
我对批处理一点都不懂!

TOP

回复 9# a574045075

装个python3

     https://www.python.org/ftp/python/3.5.0/python-3.5.0-amd64.exe

代码另存为XX.PY

TOP

回复 10# 依山居
python2.7可以不?

TOP

回复 11# a574045075

这个是32位的py3.5
https://www.python.org/ftp/python/3.5.0/python-3.5.0.exe


   2.7的话, 你把print那行删了试试。

TOP

回复 11# a574045075
怎么解决?

TOP

回复 13# a574045075


    python3 ?

你右键 用Edit with IDLE打开,按F5运行

TOP

回复 14# 依山居
你能不能直接写个BAT啊 这样比较方便

TOP

返回列表