标题: 同行显示多列文本
[打印本页]
作者: f6fly
时间: 2010-4-21 18:15
标题: 同行显示多列文本
有一个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:湖南省
请问高手们用批处理该怎么写呢?
作者: f6fly
时间: 2010-4-21 19:08
: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
这样子不行啊,有没有高手帮忙看看呀
作者: Hanyeguxing
时间: 2010-4-21 19:23
@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 ]