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

[文件操作] 二进制文件处理

有一个二进制文件,现在需要做2种处理:
1)读出该文件第100~768字节范围的数据,并保存到另外一个新建的二进制文件里面
2)根据需要更新该文件末尾1KB数据(使用代码里面设定数据或者另外一个二进制文件)
以上都是二进制操作,如果用C库函数实现是非常容易的,求示例批处理代码

用 debug 的话,不支持大于 64K 的文件:
  1. @echo off
  2. if not exist \\?\%1 echo 无文件&pause&exit
  3. @echo m 164 l29c 100^&echo rcx^&echo 29c^&echo n 1.txt^&echo w^&echo q|debug %~s1
  4. for %%a in (%1) do set /a z=%%~za-1024+0x100
  5. if %z% lss 0 echo 文件太小&pause&exit
  6. if %z% gtr 0xffff echo 文件太大&pause&exit
  7. cmd /c exit/b %z%
  8. @echo m %=exitcode:~4% l400 100^&echo rcx^&echo 400^&echo n 2.txt^&echo w^&echo q|debug %~s1
复制代码

TOP

第1)条 可不用M而使用W时指定起始地址,BX归零可支持到560K左右的文件
(ECHO,NC.TXT&ECHO,RBX&ECHO,0&ECHO,RCX&ECHO,29D&ECHO,WCS:164&ECHO,Q)|DEBUG %~S1
1

评分人数

    • CrLf: 忘了w可带参数,好办法技术 + 1
如无特别说明,代码测试环境均为 XP SP3

TOP

用vbs可能更方便

TOP

回复 2# CrLf


    看上去DEBUG的功能还蛮强大的,可是我的64bit Win7下面没有这个App,我在我的MS-DOS7.1启动U盘里面倒是看到了一个8086年代的DEBUG.EXE,但是64bit Win7是不支持16bit App因为取消了V8086 mode。能否告诉我怎么安装一个DEBUG.exe?

TOP

返回列表