中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 同行显示多列文本 上一主题 | 下一主题
f6fly
初级用户




积分 123
发帖 13
注册 2004-2-24
状态 离线
『楼 主』:  同行显示多列文本

有一个1.txt文件内容如下:

1:北京市 bj001-004
2:天津市 tj003-003
3:上海市
4:重庆市
5:河北省
6:山西省
7:辽宁省
8:吉林省
9:黑龙江省
10:江苏省
11:浙江省
12:安徽省
13:福建省
14:江西省
15:山东省
16:河南省
17:湖北省
18:湖南省

现在想让它在屏幕这样显示,并且当用户输入它前面的序号时再显示相应的地名。如敲入18 则显示 湖南省


1:北京市     2:天津市     3:上海市     4:重庆市     5:河北省
6:山西省     7:辽宁省     8:吉林省     9:黑龙江省 10:江苏省
11:浙江省   12:安徽省   13:福建省   14:江西省    15:山东省
16:河南省   17:湖北省   18:湖南省

请问高手们用批处理该怎么写呢?

2010-4-21 18:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
f6fly
初级用户




积分 123
发帖 13
注册 2004-2-24
状态 离线
『第 2 楼』:  

:Start
@echo off&setlocal enabledelayedexpansion&Title
cls
set a=0
echo.
echo.
for /F "tokens=2 delims=." %%i in (1.txt) do (
set/a a+=1
    set /a m=!a!
    if !m!==1 set n=
    set /p=[!a!]  %%i<nul
    set /a l+=1
    if !l!==3 set l=1
)
echo.
echo.    *************************************
set o=
set/p o=    请输入序号按回车键确认([]内数字):
if not defined test_%o% echo.&echo.    输入错误,请按任意键继续,或按 Ctrl+C 终止程序!&goto end

:end

这样子不行啊,有没有高手帮忙看看呀

2010-4-21 19:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2* delims=: " %%i in (1.txt) do (
set/a n+=1,m+=1&set han_%%i=%%j
set/p=%%i:%%j        <nul
if !m!==4 set m=0&echo.)
echo.
:ye
set/p p=请输入代码,0为继续下一个步骤
if %p%==0 goto :gu
call echo.%%han_!p!%%
goto :ye
:gu
pause
set/p=%%i:%%j        <nul中间的连续空格为一个制表符

[ Last edited by Hanyeguxing on 2010-4-21 at 19:25 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-21 19:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: