Cra*_*edd 5 goto batch-file call
我理解代码中的标签链接,但有什么区别?
@echo off
:top
echo I love StackOverflow.com
goto :top
Run Code Online (Sandbox Code Playgroud)
@echo off
:top
echo I love StackOverflow.com
call :top
Run Code Online (Sandbox Code Playgroud)
先感谢您!
D G*_*D G 13
你给出的例子并没有真正显示出两者之间的区别.
"goto" - 转到标签.
"call" - 转到标签,然后在代码完成后返回给调用者.
在您的示例中,由于您的代码永远不会完成,因此它永远不会返回给调用者.
您可能会看到的唯一区别是,"调用"版本最终会在"返回"的列表变得如此之大,直到"填满"内存时崩溃.
要了解如何正确使用call命令:http://ss64.com/nt/call.html
在你的例子中,很少 - 除了call
版本最终会崩溃。
goto
将执行转移到指定的标签;从那时起继续执行。
call
也将执行转移到标签,但当处理到达exit
or时end-of-physical-file
,执行会直接转移回该call
指令之后的指令。
call
还允许传递参数。就作为 的目标的子例程而言call
,它%1...
是由 提供的参数call
,而不是作为批处理过程的命令行参数提供的。
您可以使用外部批处理或可执行文件,并且在该call
调用例程结束时,执行将使用. 将简单地执行目标,并完全忘记它在原始批次中的位置call
goto