Board logo

标题: [文本处理] 批处理命令如何向二进制文件尾部追加一个字符? [打印本页]

作者: wqte45    时间: 2019-1-1 16:45     标题: 批处理命令如何向二进制文件尾部追加一个字符?

没有其他工具可用的情况下,怎么样能向一个二进制尾部追加一个00(hex)?
  1. echo ^@>> test.bin
复制代码
这样不行,追加普通字符有回车换行,而且好像还不完全支持ascii(0-31),
我现在这样用的:
  1. copy con 0.txt
  2. ^@^Z
  3. type 0.txt >>test.bin
复制代码
这样可以,但有点繁琐,有其他简单的方法吗?
作者: ivor    时间: 2019-1-1 17:00

本帖最后由 ivor 于 2019-1-1 17:01 编辑
  1. set/p=^@^Z>>text.bin
复制代码

作者: wqte45    时间: 2019-1-1 17:07

ivor 发表于 2019-1-1 17:00



    不知道你测试过没有? 反正我的windows 7下是不行的
作者: ivor    时间: 2019-1-1 17:33

  1. set/p=^@^Z<nul>>text.bin
复制代码

作者: wqte45    时间: 2019-1-1 17:40

回复 4# ivor


    还是一样,不能通过
作者: ivor    时间: 2019-1-1 17:46

操作系统:windows 7 professional x86 虚拟机
测试通过✔

你有什么错误提示吗?
作者: wqte45    时间: 2019-1-1 17:58

回复 6# ivor


我用winhex查看文件并未被修改,我怀疑,你是不是输入错字符了?  ^@是一个字符  ascii(0),  用ctrl + @  输入的,那个^Z也一样,都是一个字符
作者: wqte45    时间: 2019-1-1 18:00

回复 6# ivor


    郁闷啊,上传个图片,不让显示。。。

我发文字吧

C:\Users\Administrator>set/p=^@^Z<nul>>test.bin
More?


C:\Users\Administrator>
作者: Batcher    时间: 2019-1-1 20:58

回复 7# wqte45


    类似这种信息以后发帖求助的时候请在顶楼说清楚吧,否则别人很难猜到的
作者: wqte45    时间: 2019-1-1 21:15

本帖最后由 wqte45 于 2019-1-1 21:19 编辑

回复 9# Batcher


我感觉我说的很清楚了啊  说是追加一个字符。
而且我还上了代码, 第一行的 echo ^@  这个很明显啊
大家都知道啊,cmd下输入有的ascii码,需要用ctrl按键或按alt + ascii数值, 比如响铃 ctrl + G 就会在控制台显示^G符号,但和手工输入一个^好一个G是不一样的
bbs上又没法显示这些字符, 我直接按照cmd上呈现的样子提问的
作者: Batcher    时间: 2019-1-1 21:25

回复 10# wqte45


    挺好的,请继续坚持 ^_^
作者: zaqmlp    时间: 2019-1-1 23:02

  1. cmd /u /c echo;>0.txt
  2. findstr /vrc:$ 0.txt>>test.bin
复制代码

作者: zaqmlp    时间: 2019-1-1 23:18

  1. echo;00>0.txt
  2. certutil -decodehex 0.txt 0.bin
  3. copy /b test.bin+0.bin new_test.bin
复制代码

作者: wqte45    时间: 2019-1-2 00:03

本帖最后由 wqte45 于 2019-1-2 00:46 编辑

回复 13# zaqmlp

你的代码结果是对的, 但好像比我用的还要繁琐呢
那个certutil的-decodehex参数还是不错的,
就是这个参数解码16进制不支持0x或者\x前缀,必须用空格,
不过还是不错啦,感谢你回复我的问题。

要是能用 type con >>test.bin 或者
             more >>test.bin 就好了,
可惜他们追加的信息最后都会有回车换行符号,
我再研究研究吧




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2