[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 如何把跳转标签用一个变量代替

大家先看一下这段代码:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
  set /a n+=1
  set "_!n!=%%a"
  echo !n!、%%a
)
set /p UserSelection=       请输入您的选择(1/2/3/4/5):
IF not "%UserSelection%"=="" SET UserSelection=%UserSelection:~0,1%
if "%UserSelection%"=="1" goto !_%UserSelection%!
if "%UserSelection%"=="2" goto !_%UserSelection%!
if "%UserSelection%"=="3" goto !_%UserSelection%!
if "%UserSelection%"=="4" goto !_%UserSelection%!
if "%UserSelection%"=="5" goto !_%UserSelection%!
:张三
echo 这里是张三
goto :end
:李四echo 这里是李四
goto :end
:王五
echo 这里是王五
goto :end
:麻六
echo 这里是麻六
goto :end
:人发
echo 这里是人发
:end
pause


文件:a.txt内容为:
张三
李四
王五
麻六
人发



大家可以先运行一下,我的问题是:现在我直接把张三、李四等几个名字写在主程序里,这样的不足之处是,如果有一天我把文件a.txt中的内容做了增加或减少,那我必须修改程序中红色的的跳转标签才能保正程序正确执行。我想能不能把主程序红色的跳转标签改成变量,这样我在增加或减少a.txt文件后就不用修改主程序了!

请各位帮忙!

没法实现。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. :start
  3. set n=0
  4. for /f "delims=" %%a in (a.txt) do (
  5.    set /a n+=1
  6.    set "_!n!=%%a"
  7.    echo !n!、%%a
  8. )
  9. echo.&set /p "UserSelection=请输入您的选择(1-!n!):"
  10. for /l %%i in (1 1 !n!) do (
  11.    if "!UserSelection!" equ "%%i"  echo.&echo 这里是!_%%i!&pause>nul&goto start
  12. )
  13. goto start
复制代码
这样可以实现增减a.txt而不用更改程序。但若要像楼主代码那样一一列出标签,不改主程序是不可能的,除非写一个辅助程序,往此程序中添加相应标签的代码,然后再调用此程序。

[ 本帖最后由 lhjoanna 于 2008-12-22 03:38 编辑 ]

TOP

返回列表