为什么我的.bat文件在调用另一个.bat文件后突然结束?

Chr*_*uce 2 cmd batch-file

这里相对简单,没有容易发现的答案...我尝试了start,/ K标志等的变体,但是每当我的批处理文件上servicecontroller线并运行该命令时,它都会完成命令,但之后不执行任何操作。请指教。

cd c:\blackboard\tools\admin
servicecontroller.bat services.stop
echo ! ! ! Blackboard services have successfully stopped. It is now safe to shut down the computer or database server. ! ! !
timeout /15
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 5

批处理文件没有任何特定行来自的内存。如果您从批处理文件中执行另一个批处理文件,则原始文件本质上是“消失”的。

foo.bat:

echo in foo
bar.bat
echo called bat  <--never called
Run Code Online (Sandbox Code Playgroud)

bar.bat:

echo in bar
Run Code Online (Sandbox Code Playgroud)

baz.bat:

echo in baz
call bar.bat
echo back in baz   <--will be called
Run Code Online (Sandbox Code Playgroud)

注意call中的baz.bat。goto和之间的区别依稀/有点/有点gosub。goto无条件地将控制权转移到新位置,而“ gosub”则允许“返回”到原始调用上下文。