标题: [文本处理] 批处理下如何创建一个简单的16进制文件 [打印本页]
作者: cxmzlxb 时间: 2011-6-18 15:51 标题: 批处理下如何创建一个简单的16进制文件
比如11.bin 内容如下:00 01 13 这样的16进制文件,以CMD下如何用系统自带的工具创建?
作者: plp626 时间: 2011-6-18 16:20
复制代码
hex.bat 1.01版:
http://www.bathome.net/thread-12688-1-2.html
作者: CrLf 时间: 2011-6-18 16:22
可以通过ascmap函数获取http://bbs.bathome.net/thread-12347-1-1.html- @echo off&setlocal enabledelayedexpansion
- chcp 437
- call ascmap $
- chcp 936
- cmd /u /c echo;>tmp
- (findstr/vrc:$ tmp
- set /p=!$:~0x3,1!!$:~0x11,1!)<nul>$
- del $>nul
- pause
复制代码
作者: plp626 时间: 2011-6-18 16:31
本帖最后由 plp626 于 2011-6-18 16:33 编辑
3# zm900612
ascmap函数(version 1.01.01.00精简版)自带0x00字符,楼上代码可以精简为(可读性强):- @echo off&setlocal enabledelayedexpansion
- call ascmap $ 0x00.tmp
- set/p=!$:~0x03,1!!$:~0x13,1!<nul>11.bin
- copy /b 0x00.tmp+11.bin 11.bin
- del 0x00.tmp
- pause
复制代码
题外话,很感兴趣楼主要用批处理做这种二进制文件操作?
作者: cxmzlxb 时间: 2011-6-18 16:49
3# zm900612
ascmap函数(version 1.01.01.00精简版)自带0x00字符,楼上代码可以精简为(可读性强):@echo off&setlocal enabledelayedexpansion
call ascmap $ 0x00.tmp
set/p=!$:~0x03,1!!$:~0x13,1!11.b ...
plp626 发表于 2011-6-18 16:31
呵呵,主要是用于打印数据及格式的调整!
看了上面的算法,很不错,谢谢!
作者: qzwqzw 时间: 2011-6-18 17:36
既然会切换代码页
不如就用debug
可读性更强- @goto Start
- E 100 00 01 13
- R CX
- 3
- W
- Q
-
- :Start
- @echo off
- chcp 437 & graftabl 936 & cls
- debug test.bin <%~sf0
复制代码
作者: cxmzlxb 时间: 2011-6-18 22:09
既然会切换代码页
不如就用debug
可读性更强
@goto Start
E 100 00 01 13
R CX
3
W
Q
:Start
@echo off
chcp 437 & graftabl 936 & cls
debug test.bin
qzwqzw 发表于 2011-6-18 17:36
DEBUG还不怎么会用,这段代码我觉得很有意思,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |