找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 67223|回复: 17

[代码合集] [已解决]批处理能不能根据16进制的地址来截取一个2M的文件

[复制链接]
发表于 2012-11-7 00:37:26 | 显示全部楼层 |阅读模式
以前提的这个文件  高手们帮小弟搞定了  当我的文件大小是2M   用debug 就不可以了  大家帮忙啊
有个文件   我想截取16进制地址0010到1000之间的数值   这个有什么办法能做到  用第三方工具也可以

http://www.bathome.net/viewthread.php?from=notice&tid=19896

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-11-7 09:18:51 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-7 13:17 编辑
  1. 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
发表于 2012-11-7 18:42:40 | 显示全部楼层
没试过能不能读写大文件,所以还是用笨办法:
  1. @echo off
  2. more +4 %0|debug t.com
  3. t.com<1.txt
  4. pause&exit

  5. a
  6. mov cl,10
  7. mov ah,8
  8. ;skip:
  9. int 21
  10. loop 104
  11. mov cx,ff0
  12. ;getch:
  13. mov ah,8
  14. int 21
  15. mov ah,2
  16. mov dl,al
  17. int 21
  18. mov ah,b
  19. int 21
  20. cmp al,0
  21. jz 11f
  22. loop 10b
  23. ;end:
  24. int 20

  25. rcx
  26. 121
  27. w
  28. q
复制代码
发表于 2012-11-10 03:34:56 | 显示全部楼层
  1. xdw -b +0x10-0x1000 1.txt
复制代码
xdw.exe 下载地址: http://bathome.net/thread-20039-1-1.html
 楼主| 发表于 2012-11-10 22:30:31 | 显示全部楼层
各位老大  我试了3个办法都不行  我把文件发上去  您们帮我试试
发表于 2012-11-11 08:22:01 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-13 12:52 编辑
各位老大  我试了3个办法都不行  我把文件发上去  您们帮我试试
shchaoge 发表于 2012-11-10 22:30



    能够截取。但因为有很多“非打印”字符,for 命令读取不了。可以用 sed 提取可打印字符:
  1. xdw -b +0x10-0x1000 nv_data.bin | sed "s/[^ -~]\+//g"
复制代码
或者用 strings:
  1. xdw -b +0x10-0x1000 nv_data.bin | strings
复制代码
strings.exe 下载地址: http://bathome.net/viewthread.php?tid=20102
 楼主| 发表于 2012-11-14 23:53:07 | 显示全部楼层
老大们  还是不行  我电脑是XP  能用吗
发表于 2012-11-15 09:31:08 | 显示全部楼层
回复 7# shchaoge


    请贴一下你使用的代码和运行结果。
 楼主| 发表于 2012-11-15 21:30:43 | 显示全部楼层
用这个代码:  xdw -b +0x10-0x1000 1.txt     结果批处理也就一闪而过
 楼主| 发表于 2012-11-15 21:37:55 | 显示全部楼层
用这个代码:xdw -b +0x10-0x1000 nv_data.bin | strings  结果:
发表于 2012-11-16 07:59:13 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-16 08:01 编辑

回复 10# shchaoge


    这不是你想要的结果吗?不是的话,你希望的结果是什么?

    如果你要输出结果到文件,改成这样就好了:
xdw -b +0x10-0x1000 nv_data.bin | strings >o.txt
 楼主| 发表于 2012-11-16 22:06:48 | 显示全部楼层
我希望结果是  截取nv_data.bin文件0010到1000之间的数值
发表于 2012-11-17 07:36:55 | 显示全部楼层
我希望结果是  截取nv_data.bin文件0010到1000之间的数值
shchaoge 发表于 2012-11-16 22:06



可否以 nv_data.bin 这个文件为例给出具体的结果?我理解不了你说的“数值”是什么意思。
 楼主| 发表于 2012-11-17 23:29:49 | 显示全部楼层
以5楼的文件nv_data.bin为例:0--100的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A3536200A202020205044425F4E4F545F415641494C41424C45200A00000000000000000000000000000000000000000000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC8B34B71CC6C8F4E2D22113745FD9B5BA


我想提取:10--A0的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A35
发表于 2012-11-18 00:23:48 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-18 00:34 编辑

回复 14# shchaoge
  1. xdw -b +0x10-0x1000 nv_data.bin | xxd -p
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:23 , Processed in 0.024069 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表