Board logo

标题: 适用于读取名称的横向列表批处理 [打印本页]

作者: zh159     时间: 2006-12-30 09:41    标题: 适用于读取名称的横向列表批处理

列表排列方式为一行5个(XPSP2测试通过)

列表.db(限制:名称必须是固定长度,不够的可加空格,这个是在输入的时候限制好的,目的是为了读取方便)
:名称列表
========================================

姓名1::
姓名:[姓名姓名]
......
-End-

姓名2::
姓名:[姓名2   ]
......
-End-

姓名3::
姓名:[姓名3   ]
......
-End-

姓名4::
姓名:[姓名4   ]
......
-End-

姓名5::
姓名:[姓名5   ]
......
-End-

姓名6::
姓名:[姓名6   ]
......
-End-

姓名7::
姓名:[姓名7   ]
......
-End-

姓名8::
姓名:[姓名8   ]
.......
-End-
横向名称列表批处理
@echo off
title 横向名称列表
setlocal EnableDelayedExpansion

set Num=1
for /f "skip=3 tokens=1,2* delims=:[]" %%i in (列表.db) do (
    set %%i!Num!=%%j
  if "%%i" == "-End-" set /a Num+=1
)
set /a Num-=1
cls
echo.
echo.  横向名称列表
echo.  ----------------------------------------------------------------------------
for /l %%n in (1,1,%Num%) do (
    set /a NumList=%%n%%5
  if "!NumList!" == "0" call :List %%n)
set /a NumEnd=%Num%%%5
if "%NumEnd%" == "0" goto End

set /p=echo.    <nul>ListEnd.bat
set EndN=
call :ListEnd
set /a Num=%Num%/5*5
for /l %%n in (1,1,5) do set /a Numn%%n=%Num%+%%n
for %%n in (Numn1 Numn2 Numn3 Numn4 Numn5) do if !%%n! LSS 10 (set %%n= !%%n!) else set %%n=!%%n!
call ListEnd.bat
del ListEnd.bat

:End
echo.  ----------------------------------------------------------------------------
pause
exit

:List
set Numn=4
for /l %%n in (1,1,5) do set /a Numn%%n=%1-!Numn!&&set /a Numn-=1
for %%n in (Numn1 Numn2 Numn3 Numn4 Numn5) do if !%%n! LSS 10 (set %%n= !%%n!) else set %%n=!%%n!
echo.    %Numn1%: !姓名%Numn1: =%! ∣%Numn2%: !姓名%Numn2: =%! ∣%Numn3%: !姓名%Numn3: =%! ∣%Numn4%: !姓名%Numn4: =%! ∣%Numn5%: !姓名%Numn5: =%!
goto :eof

:ListEnd
set /a EndN+=1
set Numn=Numn%EndN%
set /p=%%%Numn%%%: ^^!姓名%%%Numn%: =%%^^! <nul>>ListEnd.bat
if "%NumEnd%" == "1" (goto :eof) else set /p=∣<nul>>ListEnd.bat
set /a NumEnd-=1
goto ListEnd

作者: namejm     时间: 2006-12-30 10:27
  这个代码和那个通讯录有关系吧?暂时还不明白具体有什么作用。
作者: zh159     时间: 2006-12-30 10:41
差不多,这是做另外一个批处理时编写的(人数不少,强度不小^_^|||),可以5个一行整版排列名字,方便查看(纯CMD的),可以直接按编号选取;以前只能一个名字一行,数量多就太长了。

[ Last edited by zh159 on 2006-12-29 at 09:42 PM ]
作者: electronixtar     时间: 2006-12-30 13:17


  Quote:
这是做另外一个批处理时编写的(人数不少,强度不小^_^|||)

推荐用vbs了
作者: zh159     时间: 2006-12-30 14:17
也想用VBS,不过不会-_-|||
而且好像VBS没有合适的多选界面
用IE界面当然比较方便,不过通用性不够强