标题: [求助]在批处理中用Echo创建文件和写入文本的问题?
[打印本页]
作者: hzy
时间: 2003-7-31 00:00
标题: [求助]在批处理中用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-8-1 00:00
其实你自己都会了嘛....
echo set aaa=bbb>d:\test.bat不就行了
作者: hzy
时间: 2003-8-1 00:00
上面的例子只是打个比方!
我想知道的是:如何让两次用ECHO命令输出的内容打印到test.bat里面的同一行上!
作者: lin1
时间: 2003-8-2 00:00
你那种想法是不可行的,ECHO是绝对换行显示!
作者: LanE
时间: 2003-8-2 00:00
DOS下的ECHO命令太弱了,不过瘾啊
作者: Wengier
时间: 2003-8-2 00:00
Quote: |
以下是引用LanE在2003-8-2 10:54:28的发言:
DOS下的ECHO命令太弱了,不过瘾啊 |
|
那GNUish的DOS命令(如PRINTF等)也不错呢。。
作者: willsort
时间: 2003-9-29 00:00
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内容固定时,用编辑程序预先编辑所需要的不带回车符的头文件没有什么大的困难。
作者: SHOCIAA
时间: 2003-10-1 00:00
Quote: |
以下是引用willsort在2003-9-29 3:20:20的发言:
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内容固定时,用编辑程序预先编辑所需要的不带回车符的头文件没有什么大的困难。 |
|
还是看不懂