Board logo

标题: 用Echo命令能不能创建二进制文件? [打印本页]

作者: quicker     时间: 2005-6-6 00:00    标题: 用Echo命令能不能创建二进制文件?

我们知道用Echo命令可以创建文本文件,能不能利用这个命令创建二进制文件,也就是任意文件,而不限制为纯文本文件。请指教,谢谢!
作者: willsort     时间: 2005-6-6 00:00
Re quicker:  echo无法直接创建二进制文件,不过可以先用它创建DEBUG脚本,然后用DEBUG生成二进制文件。例如:
@echo off
echo e100 07 07 07 >beep.asd
echo nbeep.bin>>beep.asd
echo rcx>>beep.asd
echo 3 >>beep.asd
echo w>>beep.asd
echo q>>beep.asd
:: 创建debug脚本
debug < beep.asd > nul
:: 生成二进制文件
type beep.bin
del beep.asd
del beep.bin

作者: JonePeng     时间: 2005-6-6 00:00
回楼主:
不能直接用ECHO来创建。
因为二进制文件除了文本字符外,还有许多控制字符和图形字符,这些字符在输入时很麻烦,特别是0~31号的ASCII字符简直无法手动输入。而且,以命令行输入ECHO命令又有字符数的限制(好像不超过256个字符)。假如echo命令可以输出二进制文件,那么该文件的大小也有限制。如果楼主认为用“>>”可以继续添加内容,我想还是不行,仍存在一个问题:
ECHO命令无论用“>”“>>”作结尾,在输出字符(串)到一个文件后,都会自动在字符(串)的末端添加换行符。一旦有换行符,输出的文件就不能称为二进制文件了,因为换行符是文本文件的特征,那些exe、com、dll、ocx以及其它诸如图形文件、音频视频文件等二进制都没有换行符的。

[此贴子已经被作者于2005-6-6 20:10:32编辑过]



作者: quicker     时间: 2005-6-8 00:00
谢谢willsort和JonePeng的指教,我明白了。
我非常想在DOS下生成二进制文件,这非常有趣。如果不用debug,也不用什么编程工具,仅用DOS命令,能实现吗?
这里有一个思路:在Windows下点鼠标右键,指向新建,再点Winzip文件,就可以创建一个Winzip文件,不是0字节的。我在注册表中找到了这个文件二进制内容的键值,看来WIndows在创建Winzip文件时是把这个键值的数据写到了该zip文件中的。我想问的是,能不能用DOS命令来模拟这个过程,也创建一个Winzip文件,当然是用Windows下的DOS来模拟,内部外部命令都行。如果有其它方法也行。
也不知道能不能实现,请大家帮助,谢谢!

[此贴子已经被作者于2005-6-8 18:44:20编辑过]