中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-14 05:12
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]dos7.1下,用echo将字符输出到文件,能否进行对齐 查看 1,281 回复 5
楼 主 [求助]dos7.1下,用echo将字符输出到文件,能否进行对齐 发表于 2009-02-01 19:58 ·  中国 河南 郑州 电信
初级用户
积分 78
发帖 33
注册 2008-12-09 12:08
17年会员
UID 133305
性别 男
状态 离线
比如用echo向文件中输入两行两列文字,则如果第一列的文字不一样长,那么第二列以后的文字就不能保持对齐,如下所示:

123456 test
123 test


不知在dos7.1下有没有办法对echo输出到文件的内容进行对齐?
2 发表于 2009-02-02 12:31 ·  中国 广东 江门 电信
中级用户
★★
积分 256
发帖 124
注册 2007-12-18 16:41
18年会员
UID 106049
性别 男
状态 离线
echo命令只是将文本不加任何修改的显示,不借助其他命令无法实现楼主的要求
3 发表于 2009-02-02 15:37 ·  中国 河南 郑州 电信
初级用户
积分 78
发帖 33
注册 2008-12-09 12:08
17年会员
UID 133305
性别 男
状态 离线
那么有没有什么好的外部命令可以实现?
4 发表于 2009-02-06 00:51 ·  中国 上海 杨浦区 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
你想怎么个对齐,左对齐?右对齐?每列首对齐?
5 发表于 2009-02-06 17:06 ·  中国 河南 郑州 电信
初级用户
积分 78
发帖 33
注册 2008-12-09 12:08
17年会员
UID 133305
性别 男
状态 离线
每列左对齐
6 发表于 2009-02-06 17:52 ·  中国 上海 杨浦区 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
可以用 4DOS 的 @format 变量函数

4DOS Help Topic: @FORMAT


@FORMATx],string]: Reformats a string, truncating it or padding
it with spaces as necessary. If you use the minus , the string is
left-justified; otherwise, it is right-justified. The x value is the
minimum number of characters in the result. The y value is the maximum
number of characters in the result. You can combine the options as
necessary. For example:

"%@format" returns " JPSoftware"
"%@format" returns "JPS"

@FORMAT will add leading or trailing spaces if necessary to pad the result
to the minimum width specified by x. If a leading zero is used before x,
the padding will be with 0's instead, for example:

"%@format" returns " 5"
"%@format" returns "0005"
"%@format" returns "5000"

See also the @COMMA function, which can make numeric values easier to read
by inserting thousands separators.


要每列左对齐的话,也就是说前一列的长度都要相同,少于所需长度的要填充空格(也可以是0),以你的例子为例,假定第一列的最大字串长度为6(列之间的空格不计,是随便你预先输入的,当然,也可以包括到函数中去)。

echo %@format test

得到的结果就是

123 test
论坛跳转: