标题: [其他] [已解决]批处理能否以十六进制方式修改文件内容? [打印本页]
作者: a574045075 时间: 2015-10-29 16:10 标题: [已解决]批处理能否以十六进制方式修改文件内容?
高手帮忙做个批处理BAT
处理前,如下:
处理后,把上图第9字节显示的01批量改为下图显示的00
这是要处理的文档 链接: http://pan.baidu.com/s/10Xjxs 密码: 9gxi
作者: CrLf 时间: 2015-10-29 19:54
http://www.bathome.net/s/tool/?key=hex
作者: terse 时间: 2015-10-29 22:00
什么系统呢 win7可以试试POWERSHELL- $list = [System.IO.Directory]::GetFiles($PWD, '*.bcwav', 'AllDirectories')
- ForEach ($file in $list) {
- $fs=new-object io.filestream $file,open;
- $fs.seek(9,0);
- $fs.writebyte("0");
- $fs.flush();
- $fs.close();
- }
复制代码
作者: 依山居 时间: 2015-10-30 03:52
不知道hextool 这样用对不对。
对比了修改结果看样子是对的。复制代码
作者: 依山居 时间: 2015-10-30 04:10
不加H也可以。不清楚有什么区别复制代码
作者: a574045075 时间: 2015-10-30 08:08
回复 3# terse
XP系统
作者: a574045075 时间: 2015-10-30 08:17
回复 4# 依山居
可以用 但是要一个一个转换 我要的是批量转换
作者: 依山居 时间: 2015-10-30 08:37
python3 练手。没有计算机基础,花了很时间去理解和学习处理字节流。- #python二进制修改bcwav文件
-
- # 批处理BAT以十六进制方式修改文件内容
- # http://www.bathome.net/thread-37858-1-1.html
-
- # 相关: Nintendo 3DS Banner Wave / .BCWAV file format
- # https://gbatemp.net/threads/nintendo-3ds-banner-wave-bcwav-file-format.320705/
-
- # python str与bytes之间的转换
- # http://blog.csdn.net/yatere/article/details/6606316
-
- import os
- #方法一 只处理单个文件
- #"r+b"选项开启二进制读写文件模式
- f=open("01.bcwav","r+b")
- f.seek(9)#指针移动到这个位置进行写操作会覆盖这个地址的数据。
- f.write(b'\x00')
- f.close()
-
- #方法二 历遍当前目录批量处理
- extension=".bcwav" #需要处理的文件后缀
-
- for l in os.listdir(): #默认仅list当前目录
- l=l.lower()
- #把文件名转成小写进行判断
- lext=os.path.splitext(l)
- if extension in lext[1] and os.path.isfile(l):
- f=open(l,"r+b")
- f.seek(9)
- f.write(b'\x00')
- f.flush()
- f.close()
- print(l,"文件已经修改")
复制代码
作者: a574045075 时间: 2015-10-30 08:56
回复 8# 依山居
我对批处理一点都不懂!
作者: 依山居 时间: 2015-10-30 09:00
回复 9# a574045075
装个python3
https://www.python.org/ftp/python/3.5.0/python-3.5.0-amd64.exe
代码另存为XX.PY
作者: a574045075 时间: 2015-10-30 09:05
回复 10# 依山居
python2.7可以不?
作者: 依山居 时间: 2015-10-30 09:08
回复 11# a574045075
这个是32位的py3.5
https://www.python.org/ftp/python/3.5.0/python-3.5.0.exe
2.7的话, 你把print那行删了试试。
作者: a574045075 时间: 2015-10-30 09:17
回复 11# a574045075
怎么解决?
作者: 依山居 时间: 2015-10-30 09:28
回复 13# a574045075
python3 ?
你右键 用Edit with IDLE打开,按F5运行
作者: a574045075 时间: 2015-10-30 09:33
回复 14# 依山居
你能不能直接写个BAT啊 这样比较方便
作者: 依山居 时间: 2015-10-30 09:34
回复 15# a574045075
那你为什么不能自己学。。
作者: pcl_test 时间: 2015-10-30 09:58
回复 7# a574045075 - for %%a in (*.bcwav) do hextool "%%a" 9 1 00
复制代码
作者: a574045075 时间: 2015-10-30 10:43
回复 17# pcl_test
修改成功了 谢谢
作者: gz9501 时间: 2016-7-22 16:37
请问hextool 插入、删出命令,最好能有多字节的,谢谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |