-
goto-
说明
goto指令指定程序下一步执行的位置;- 和
C语言的goto差不多; 因为bat没有函数的概念, 可以在整个bat文件中任意跳转; - 而
label的定义和C语言略有差异;
-
案例
int main() { int a = 0; label: if (a < 10) { ++a; goto label; } return 0; }set /a a=0 :label if %a% lss 10 ( set /a a+=1 goto :label ) echo %a%- 上面两个都差不多, 只是定义和调用的略有差异;
-
参考
-
补充
goto :EOF和return类似;即推出当前程序;label定义是一行都是, 可以包含空格, 但是不能包括;=之类的;label的定义尽量避免二义性;可以前面加空格,:只能一个, 多了就变成注释了.goto结合if可以实现bat没有的while循环;goto不仅仅往回跳,也可以往下跳;
-
-
call-
简介
-
格式
call [drive:][path]<filename> [<batchparameters>] [:<label> [<arguments>]][drive:][path]<filename>文件名, 指调用某个bat文件.batchparameters表示输入参数:<label>标记点, 表示开启一个函数,从这个点开始执行;当然也会继承当前的环境变量;[drive:][path]<filename>的优先级大于[:<label> [<arguments>]].
-
注意
-
案例
call :function_label :function_label setlocal echo good endlocal && exit /b 0- 这个的执行结果是;
good good [Finished in 336ms]- 原因是从上往下执行,
call之后, 继续往下执行;
call :function_label exit /b 0 :function_label setlocal echo good endlocal && exit /b 0- 所以需要这种; 执行完推出当前环境;
-
bat goto 还是 call
最新推荐文章于 2024-07-22 23:07:22 发布
本文详细介绍了批处理脚本中的goto和call指令的使用方法。包括goto指令如何实现循环和跳转,以及call指令如何调用其他程序或指令,并创建新的执行环境。文章还提供了多个案例来帮助理解这些概念。
424

被折叠的 条评论
为什么被折叠?



