Board logo

标题: [文本处理] 如何在主.bat中调动子.bat后返回主.bat继续执行 [打印本页]

作者: kat、    时间: 2018-1-11 11:45     标题: 如何在主.bat中调动子.bat后返回主.bat继续执行

我的批处理文件如下。我想在 主.bat 调动 子.bat 之后,继续返回主bat执行下一步(且返回主bat的过程中子bat仍然处于执行的状态)。
现在问题是我运行后,只会停留在子bat的执行窗口,并没有返回主bat。
请各位大神帮我看看哪里需要修改呗 ~
主.bat:
------------------------------------------------------分割线
.....
echo "start to call 子 bat here"
call 子.bat
echo "Back to 主 bat"
ipmitool -I lanplus -H %IP% -U %USERID% -P %PASSWD% power reset  //下一步
.....
-----------------------------------------------------分割线
子.bat:
@echo off
echo "子 bat has been called."
mode con cols=100 lines=31
set IP=***
set USERID=***
set PASSWD=***
@echo on
ipmitool -I lanplus -H %IP% -U %USERID% -P %PASSWD% sol activate
pause>nul
exit
----------------------------------------------------分割线
作者: yhcfsr    时间: 2018-1-11 12:36

测试代码-:
a.bat(主程序)
  1. @echo off
  2. echo 调用子程序
  3. call b.bat
  4. echo 返回主过程
  5. pause
复制代码
b.bat(子程序)
  1. @echo off
  2. echo 子过程执行中……
  3. rem 若用call调用子程序,此处结尾用exit,会终止包括主程序的所有过程
复制代码
测试结果


测试代码二:
a.bat(主程序)
  1. @echo off
  2. echo 调用子程序
  3. start /b /wait b.bat
  4. echo 返回主过程
  5. pause
复制代码
b.bat(子程序)
  1. @echo off
  2. echo 子过程执行中……
  3. exit
  4. rem 由start调用,结尾必须有exit,否则无法退出子过程
复制代码
测试结果同上。
作者: kat、    时间: 2018-1-11 13:44

回复 2# yhcfsr


    所以我只需要把子程序的exit 改成rem就好了吗




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