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

[其他] 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下面执行,有什么办法呢?

  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
复制代码

TOP

回复 2# DAIC


    好像不行哦,多选的时间第一个子程序完了就结束了

TOP

回复 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

TOP

  1. if %rnc%==2752 goto RNC2752
  2. if %rnc%==2753 goto RNC2753
  3. if %rnc%==2754 goto RNC2754
复制代码
goto 应该换成call
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 4# DAIC

您是对的,谢谢 是我没理解goto :eof的作用,现在OK了

TOP

回复 5# ivor


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

TOP

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

回复 7# DAIC


   想了想,他反正只能执行一个条件,call  和  goto没有什么区别了
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 8# ivor


    你还是没理解楼主的需求

TOP

返回列表