中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » [求助]在批处理中用Echo创建文件和写入文本的问题?
作者:
标题: [求助]在批处理中用Echo创建文件和写入文本的问题? 上一主题 | 下一主题
hzy
高级用户




积分 578
发帖 135
注册 2003-7-10
状态 离线
『楼 主』:  [求助]在批处理中用Echo创建文件和写入文本的问题?

在批处理中,想在D:\下创建一个test.bat,内容为:set aaa=bbb

于是:
................
echo set aaa= >d:\test.bat
echo bbb >>d:\test.bat

但执行上面语句得到的结果d:\test.bat的内容却为:
set aaa=
bbb
而不是:
set aaa=bbb

请问如何能让上面两行命令输出到d:\test.bat上的字符串在同一行上?


2003-7-31 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
电吉入侵
初级用户




积分 1480
发帖 377
注册 2003-6-6
状态 离线
『第 2 楼』:  

其实你自己都会了嘛....
echo set aaa=bbb>d:\test.bat不就行了



欢迎大家访问我的主页!
精品.爱好http://iso.533.net
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (21039929)  编辑帖子  回复  引用回复
hzy
高级用户




积分 578
发帖 135
注册 2003-7-10
状态 离线
『第 3 楼』:  

上面的例子只是打个比方!
我想知道的是:如何让两次用ECHO命令输出的内容打印到test.bat里面的同一行上!

2003-8-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lin1
初级用户




积分 183
发帖 29
注册 2003-6-22
状态 离线
『第 4 楼』:  

你那种想法是不可行的,ECHO是绝对换行显示!

2003-8-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
LanE
银牌会员




积分 1833
发帖 648
注册 2002-11-8
状态 离线
『第 5 楼』:  

DOS下的ECHO命令太弱了,不过瘾啊

2003-8-2 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 6 楼』:  



  Quote:
以下是引用LanE在2003-8-2 10:54:28的发言:
DOS下的ECHO命令太弱了,不过瘾啊

那GNUish的DOS命令(如PRINTF等)也不错呢。。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-8-2 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 7 楼』:  

Re hzy:

    让他们输出在同一行的方法有三种思路:

    1、想办法不输出回车符:
    用echo肯定是不行了,可以试试斑竹所说的GNUish命令,我自己使用的是oecho.exe,这些如果你都找不到,干脆自己直接用C或汇编写一个,反正也很简单。另外,用debug也可以写出来。如果你对这些方法都看不惯,那么可以试试以下的思路。

    2、就用echo输出,然后把回车符想办法删掉:
    这个很有技巧性,我至今只见到使用debug将文件长度减少两个字节后重新保存,不过这需要预知源文件的长度,应用有些局限性。另外,一些支持管道操作的编辑软件(如dos5下的edlin)或者二进制串替换软件(如undisk软件包中的hexc)也可以做到这一点。
   echo r cx >delfeed.scr
   echo 源文件长度减2,再换算为16进制 >> delfeed.scr
   echo n sample2.tx>>delfeed.scr
   echo s >> delfeed.scr
   debug sample1.txt < delfeed.scr

   hexc sample1.txt sample2.txt 0d0a ""

    3、直接预制所需文件,不用临时输出,这种方法适用于sample1.txt内容固定时,用编辑程序预先编辑所需要的不带回车符的头文件没有什么大的困难。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2003-9-29 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
SHOCIAA
中级用户

SHOCI@@


积分 228
发帖 41
注册 2003-10-1
状态 离线
『第 8 楼』:  



  Quote:
以下是引用willsort在2003-9-29 3:20:20的发言:
Re&nbsp;hzy:

&nbsp;&nbsp;&nbsp;&nbsp;让他们输出在同一行的方法有三种思路:

&nbsp;&nbsp;&nbsp;&nbsp;1、想办法不输出回车符:
&nbsp;&nbsp;&nbsp;&nbsp;用echo肯定是不行了,可以试试斑竹所说的GNUish命令,我自己使用的是oecho.exe,这些如果你都找不到,干脆自己直接用C或汇编写一个,反正也很简单。另外,用debug也可以写出来。如果你对这些方法都看不惯,那么可以试试以下的思路。

&nbsp;&nbsp;&nbsp;&nbsp;2、就用echo输出,然后把回车符想办法删掉:
&nbsp;&nbsp;&nbsp;&nbsp;这个很有技巧性,我至今只见到使用debug将文件长度减少两个字节后重新保存,不过这需要预知源文件的长度,应用有些局限性。另外,一些支持管道操作的编辑软件(如dos5下的edlin)或者二进制串替换软件(如undisk软件包中的hexc)也可以做到这一点。
&nbsp;&nbsp;&nbsp;echo&nbsp;r&nbsp;cx&nbsp;>delfeed.scr
&nbsp;&nbsp;&nbsp;echo&nbsp;源文件长度减2,再换算为16进制&nbsp;>>&nbsp;delfeed.scr
&nbsp;&nbsp;&nbsp;echo&nbsp;n&nbsp;sample2.tx>>delfeed.scr
&nbsp;&nbsp;&nbsp;echo&nbsp;s&nbsp;>>&nbsp;delfeed.scr
&nbsp;&nbsp;&nbsp;debug&nbsp;sample1.txt&nbsp;<&nbsp;delfeed.scr

&nbsp;&nbsp;&nbsp;hexc&nbsp;sample1.txt&nbsp;sample2.txt&nbsp;0d0a&nbsp;&quot;&quot;

&nbsp;&nbsp;&nbsp;&nbsp;3、直接预制所需文件,不用临时输出,这种方法适用于sample1.txt内容固定时,用编辑程序预先编辑所需要的不带回车符的头文件没有什么大的困难。

还是看不懂



≡≡☆⌒_⌒☆≡■◆■≡☆⌒_⌒☆≡≡    
(の)゛在﹍這個...ロ丗界里ヤ
(の) ╱︶ 誰對o..﹎οО誰錯┈?
 ìòvè ╭☆
╭~~~★ ╭ ︶╮
╱︶(o'.'o)︶╲ ╱︶(-'.'-)︶╲
2003-10-1 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: