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

[其他] 请教批处理call和exit问题

现在遇到一个比较特殊的需求,关于exit的
打个比方:
1.bat开头call 2.bat,然后2.bat开头call 3.bat,在3.bat里面根据条件判断需要跳过不执行上一级2.bat的后续内容,整个程式回到1.bat继续往下执行。
首先不想在2.bat里面增加任何内容判断跳转,想直接在3.bat里面就能结束自己和上一级2.bat,能想到的就是3.bat加exit /b 0,但只能终结自己自己,如果直接exit,会把整个窗口终结也不行,实在想不到什么办法,特此请教各位

你这要求,我没有解决方法,等待论坛大佬出手吧!
不过个人感觉这样挺复杂的,如果2.bat和3.bat内容较少,直接放在1.bat内应该也可以吧。
如果一定要执行多重call,你的要求是根据3.bat条件判断是否跳至2.bat或1.bat,那就先call 3.bat

TOP

用exit /b 1 解决
1.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. call 2.bat
  4. echo 1.bat
  5. pause
复制代码
2.bat
  1. @echo off
  2. call 3.bat||exit /b 1
  3. echo 2.bat
复制代码
3.bat
  1. @echo off
  2. echo 3.bat
  3. choice /c YN /m "exit 3.bat and 2.bat ?"
  4. if %errorlevel% equ 1 (
  5. exit /b 1
  6. ) else (
  7. exit /b 0
  8. )
复制代码
微信:flashercs
QQ:49908356

TOP

1.bat是主程式,里面会call很多类似2.bat这种,3.bat是一个固定模板,2层的bat前后都会call它,如果都在1.bat调用3.bat,那每调用一个2层bat,前后都要调用一次3.bat,主程式就太乱了,说的也有点乱
楼上的方法可以,2.bat至少不用另起一行加内容,感谢

TOP

返回列表