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

回复 6楼 的帖子

5楼已修改。忘记了给标签加冒号。。。

TOP

回复 5楼 的帖子

经测试有错误,谢谢,再看看

TOP

  1. @echo off
  2. echo 1.x
  3. echo 2.xx
  4. echo 3.xxx
  5. echo 4.xxxx
  6. set /p n=请输入:
  7. call :%n:~,1%
  8. if "%n:~1,1%" neq "" call :%n:~1,1%
  9. if "%n:~2,1%" neq "" call :%n:~2,1%
  10. if "%n:~3,1%" neq "" call :%n:~3,1%
  11. pause
  12. exit
  13. :1 x
  14. echo 1.x
  15. goto :eof
  16. :2 xx
  17. echo 2.xx
  18. goto :eof
  19. :3 xxx
  20. echo 3.xxx
  21. goto :eof
  22. :4 xxxx
  23. echo 4.xxxx
  24. goto :eof
复制代码

[ 本帖最后由 tireless 于 2009-2-22 20:26 编辑 ]

TOP

@echo off
echo 1.x
echo 2.xx
echo 3.xxx
echo 4.xxxx
set /p n=请输入:
if n=12 就执行:x和:xx
if n=134 就执行 :x、:xxx、:xxxx
:x
:xx
:xxx
:xxxx

就是这种逻辑关系

TOP

多谢管理,不是那样的效果。
我需要的是执行前,输入了多个变量值,根据多个值再继续执行。不是分别输入,分别执行。
例如:n输入了12,那么就分别执行标签1,标签2
           n输入了134 ,那么就分别执行标签,1、3、4
应该清楚了吧,这个有点难表达

[ 本帖最后由 愚无尽 于 2009-2-22 19:33 编辑 ]

TOP

  演示代码如下:
  1. @echo off
  2. echo 1.x
  3. echo 2.xx
  4. echo 3.xxx
  5. echo 4.xxxx
  6. set /p n=请输入:
  7. goto %n%
  8. pause
  9. exit
  10. :x
  11. ……
  12. pause
  13. exit
  14. :xx
  15. ……
  16. pause
  17. exit
  18. :xxx
  19. ……
  20. pause
  21. exit
  22. :xxxx
  23. ……
  24. pause
  25. exit
复制代码
  需要注意的是,在每个标签段下,需要用正确的跳转语句或直接用exit退出语句,以防止批处理执行到其他标签段中的语句,因为批处理的执行顺序是“自上而下,逐条执行”的——在没有流程跳转语句的时候。

  另外,你的标题是说要同时赋多值而分别执行,难道是在输入的时候,同时输入 123 和 124,然后分别执行123标签段和124标签段吗?请注意标题和你的正文内容不要产生矛盾或歧义。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表