Board logo

标题: [其他] BAT批处理if如果同时执行多个条件? [打印本页]

作者: liuhouen    时间: 2014-2-11 11:51     标题: BAT批处理if如果同时执行多个条件?

:start
set /p rnc=请输入要获取的PCHR的RNCID:
if %rnc%==2752 goto RNC2752
if %rnc%==2753 goto RNC2753
if %rnc%==2753 goto RNC2754
:RNC2752
.
.
.
:RNC2753
.
.
.
:RNC2754
.
.
.
这样的if输入是多少就跳转到响应的位置,如果我想同时让:RNC2753和:RNC2754下面执行,有什么办法呢?
作者: DAIC    时间: 2014-2-11 13:04

  1. :start
  2. set /p rnc=请输入要获取的PCHR的RNCID:
  3. if %rnc%==2752 goto RNC2752
  4. if %rnc%==2753 goto RNC2753
  5. if %rnc%==2754 goto RNC2754
  6. if %rnc%==27532754 (
  7.     call :RNC2753
  8.     call :RNC2754
  9. )
  10. goto :eof
  11. :RNC2752
  12. .
  13. .
  14. .
  15. goto :eof
  16. :RNC2753
  17. .
  18. .
  19. .
  20. goto :eof
  21. :RNC2754
  22. .
  23. .
  24. .
  25. goto :eof
复制代码

作者: liuhouen    时间: 2014-2-11 14:44

回复 2# DAIC


    好像不行哦,多选的时间第一个子程序完了就结束了
作者: DAIC    时间: 2014-2-11 17:43

回复 3# liuhouen


我这里测试没有问题
  1. @echo off
  2. :start
  3. set /p rnc=请输入要获取的PCHR的RNCID:
  4. if %rnc%==2752 goto RNC2752
  5. if %rnc%==2753 goto RNC2753
  6. if %rnc%==2754 goto RNC2754
  7. if %rnc%==27532754 (
  8.     call :RNC2753
  9.     call :RNC2754
  10. )
  11. goto :eof
  12. :RNC2752
  13. echo 我是2752
  14. goto :eof
  15. :RNC2753
  16. echo 我是2753
  17. goto :eof
  18. :RNC2754
  19. echo 我是2754
  20. goto :eof
复制代码
C:\Test>test.bat
请输入要获取的PCHR的RNCID:27532754
我是2753
我是2754
作者: ivor    时间: 2014-2-12 11:29

  1. if %rnc%==2752 goto RNC2752
  2. if %rnc%==2753 goto RNC2753
  3. if %rnc%==2754 goto RNC2754
复制代码
goto 应该换成call
作者: liuhouen    时间: 2014-2-13 15:29

回复 4# DAIC

您是对的,谢谢 是我没理解goto :eof的作用,现在OK了
作者: DAIC    时间: 2014-2-13 16:43

回复 5# ivor


你这样能实现楼主的需求吗?
同时让:RNC2753和:RNC2754下面执行

作者: ivor    时间: 2014-2-14 18:50

本帖最后由 ivor 于 2014-2-14 23:04 编辑

回复 7# DAIC


   想了想,他反正只能执行一个条件,call  和  goto没有什么区别了
作者: DAIC    时间: 2014-2-14 22:16

回复 8# ivor


    你还是没理解楼主的需求




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2