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

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

以前提的这个文件  高手们帮小弟搞定了  当我的文件大小是2M   用debug 就不可以了  大家帮忙啊
有个文件   我想截取16进制地址0010到1000之间的数值   这个有什么办法能做到  用第三方工具也可以

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

TOP

没试过能不能读写大文件,所以还是用笨办法:
  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
复制代码

TOP

  1. xdw -b +0x10-0x1000 1.txt
复制代码
xdw.exe 下载地址: http://bathome.net/thread-20039-1-1.html

TOP

各位老大  我试了3个办法都不行  我把文件发上去  您们帮我试试

TOP

本帖最后由 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

TOP

老大们  还是不行  我电脑是XP  能用吗

TOP

回复 7# shchaoge


    请贴一下你使用的代码和运行结果。

TOP

用这个代码:  xdw -b +0x10-0x1000 1.txt     结果批处理也就一闪而过

TOP

用这个代码:xdw -b +0x10-0x1000 nv_data.bin | strings  结果:

TOP

本帖最后由 tmplinshi 于 2012-11-16 08:01 编辑

回复 10# shchaoge


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

    如果你要输出结果到文件,改成这样就好了:
xdw -b +0x10-0x1000 nv_data.bin | strings >o.txt

TOP

我希望结果是  截取nv_data.bin文件0010到1000之间的数值

TOP

我希望结果是  截取nv_data.bin文件0010到1000之间的数值
shchaoge 发表于 2012-11-16 22:06



可否以 nv_data.bin 这个文件为例给出具体的结果?我理解不了你说的“数值”是什么意思。

TOP

以5楼的文件nv_data.bin为例:0--100的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A3536200A202020205044425F4E4F545F415641494C41424C45200A00000000000000000000000000000000000000000000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC8B34B71CC6C8F4E2D22113745FD9B5BA


我想提取:10--A0的数值就是CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBF85E2B91208EAD2A9E35F1CD6C5CC118F717E8952A07314ABA47CF3A0D5271001000000E0000000020074006C00000000000000000081300100000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF020000009A74CF05202020205350363236305F4D4F44454D5F30332E313231392E30355F424C303120323031322D4D61792D32322032303A34333A35

TOP

本帖最后由 tmplinshi 于 2012-11-18 00:34 编辑

回复 14# shchaoge
  1. xdw -b +0x10-0x1000 nv_data.bin | xxd -p
复制代码

TOP

返回列表