中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 10:54
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 同行显示多列文本
可打印版本  919 / 2
第1楼 f6fly 发表于 2010-04-21 18:15
初级用户 发帖 13 积分 123
同行显示多列文本
有一个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:湖南省

请问高手们用批处理该怎么写呢?
第2楼 f6fly 发表于 2010-04-21 19:08
初级用户 发帖 13 积分 123
: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

这样子不行啊,有没有高手帮忙看看呀
第3楼 Hanyeguxing 发表于 2010-04-21 19:23
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂

set/p=%%i:%%j <nul中间的连续空格为一个制表符

[ Last edited by Hanyeguxing on 2010-4-21 at 19:25 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023