标题: [代码合集] [已解决]批处理能不能根据16进制的地址来截取一个2M的文件 [打印本页]
作者: shchaoge 时间: 2012-11-7 00:37 标题: [已解决]批处理能不能根据16进制的地址来截取一个2M的文件
以前提的这个文件 高手们帮小弟搞定了 当我的文件大小是2M 用debug 就不可以了 大家帮忙啊
有个文件 我想截取16进制地址0010到1000之间的数值 这个有什么办法能做到 用第三方工具也可以
http://www.bathome.net/viewthread.php?from=notice&tid=19896
作者: tmplinshi 时间: 2012-11-7 09:18
本帖最后由 tmplinshi 于 2012-11-7 13:17 编辑
- xxd -s 0x010 test.txt | sed "/^0000010:/,/^0001000:/!d" | xxd -r
复制代码
xxd 下载地址: http://bathome.net/viewthread.php?tid=19976
sed 下载地址: http://bathome.net/thread-15605-1-4.html
作者: CrLf 时间: 2012-11-7 18:42
没试过能不能读写大文件,所以还是用笨办法:- @echo off
- more +4 %0|debug t.com
- t.com<1.txt
- pause&exit
-
- a
- mov cl,10
- mov ah,8
- ;skip:
- int 21
- loop 104
- mov cx,ff0
- ;getch:
- mov ah,8
- int 21
- mov ah,2
- mov dl,al
- int 21
- mov ah,b
- int 21
- cmp al,0
- jz 11f
- loop 10b
- ;end:
- int 20
-
- rcx
- 121
- w
- q
复制代码
作者: tmplinshi 时间: 2012-11-10 03:34
- xdw -b +0x10-0x1000 1.txt
复制代码
xdw.exe 下载地址: http://bathome.net/thread-20039-1-1.html
作者: shchaoge 时间: 2012-11-10 22:30
各位老大 我试了3个办法都不行 我把文件发上去 您们帮我试试
作者: tmplinshi 时间: 2012-11-11 08:22
本帖最后由 tmplinshi 于 2012-11-13 12:52 编辑
各位老大 我试了3个办法都不行 我把文件发上去 您们帮我试试
shchaoge 发表于 2012-11-10 22:30
能够截取。但因为有很多“非打印”字符,for 命令读取不了。可以用 sed 提取可打印字符:- xdw -b +0x10-0x1000 nv_data.bin | sed "s/[^ -~]\+//g"
复制代码
或者用 strings:- xdw -b +0x10-0x1000 nv_data.bin | strings
复制代码
strings.exe 下载地址: http://bathome.net/viewthread.php?tid=20102
作者: shchaoge 时间: 2012-11-14 23:53
老大们 还是不行 我电脑是XP 能用吗
作者: tmplinshi 时间: 2012-11-15 09:31
回复 7# shchaoge
请贴一下你使用的代码和运行结果。
作者: shchaoge 时间: 2012-11-15 21:30
用这个代码: xdw -b +0x10-0x1000 1.txt 结果批处理也就一闪而过
作者: shchaoge 时间: 2012-11-15 21:37
用这个代码:xdw -b +0x10-0x1000 nv_data.bin | strings 结果:
作者: tmplinshi 时间: 2012-11-16 07:59
本帖最后由 tmplinshi 于 2012-11-16 08:01 编辑
回复 10# shchaoge
这不是你想要的结果吗?不是的话,你希望的结果是什么?
如果你要输出结果到文件,改成这样就好了:
xdw -b +0x10-0x1000 nv_data.bin | strings >o.txt
作者: shchaoge 时间: 2012-11-16 22:06
我希望结果是 截取nv_data.bin文件0010到1000之间的数值
作者: tmplinshi 时间: 2012-11-17 07:36
我希望结果是 截取nv_data.bin文件0010到1000之间的数值
shchaoge 发表于 2012-11-16 22:06
可否以 nv_data.bin 这个文件为例给出具体的结果?我理解不了你说的“数值”是什么意思。
作者: shchaoge 时间: 2012-11-17 23:29
以5楼的文件nv_data.bin为例:0--100的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A3536200A202020205044425F4E4F545F415641494C41424C45200A00000000000000000000000000000000000000000000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC8B34B71CC6C8F4E2D22113745FD9B5BA
我想提取:10--A0的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A35
作者: tmplinshi 时间: 2012-11-18 00:23
本帖最后由 tmplinshi 于 2012-11-18 00:34 编辑
回复 14# shchaoge - xdw -b +0x10-0x1000 nv_data.bin | xxd -p
复制代码
作者: shchaoge 时间: 2012-11-18 22:11
谢谢斑竹 基本达到我的要求 我用 xdw -b +0x10-0x1000 nv_data.bin | xxd -p >1.TXT
文本上每行怎么只能显示60个字节 如果能不换行就好了 也就是都连在一起
作者: tmplinshi 时间: 2012-11-18 23:44
回复 16# shchaoge
修改了一下 xxd,把 -p 改成了不换行输出。- xd -b +0x10-0x1000 nv_data.bin | xxd2 -u -p >1.TXT
复制代码
作者: shchaoge 时间: 2012-11-19 22:06
谢谢 完全搞定
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |