中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 将文档内容,横列变为纵列 上一主题 | 下一主题
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 16 楼』:  

那样的话,我的脚本输出的效果是很整齐的……

2007-8-20 16:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by 26933062 at 2007-8-20 14:43:
namejm 版主
你的下划线还是没显示出来啊
输出格式还是很不整齐,这也正是我昨晚卡壳的地方.
我的思路是,在设变量前,先判断该变量有几个字符,来决定该在前面加几个空格.
其实应该不难,但怎么就是搞不对.

  下划线无须在结果中显示出来。

  我那个 set /p 语句 <nul 前是跳格键,在论坛里会被转换为空格,复制下来之后,请重新手工设置为跳格键,否则,将起不到对齐的效果。不过,跳格键默认占用8字节,所以,如果每个元素的字节小于8个,无须判断字符数的多少就可以对齐显示,如果大于等于8个就很难看了。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-8-20 18:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 18 楼』:  

对齐的问题:
借用namejm的代码:
@echo off
set /a num=0,_num=0,max=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
    set /a num+=1,_num=0
    for %%j in (%%i) do (
        set /a _num+=1
        set str!num!_!_num!=%%j
        if !_num! geq !max! set max=!_num!
    )
)
for /l %%i in (1,1,%max%) do (
    set "res="
    for /l %%j in (1,1,%num%) do (
       set "var=!str%%j_%%i!     "
       set "res=!res!!var:~0,5!"
    )
    echo !res!
)
pause


2007-8-20 18:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 19 楼』:  

记得在chinaunix上有个用gawk写的,那个效率应该快多了

2007-8-20 20:12
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by youxi01 at 2007-8-20 18:12:
对齐的问题:
借用namejm的代码:
[code]

你们太强了,这样的代码我是怎么也想不出来的了.
绕了一大堆弯,效率低不说,还不能解决问题....唉!



致精致简!
2007-8-20 20:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: