华人澳洲中文论坛

【WINDOWS / DOS 批处置】对于标签的履行流程

[复制链接]

2022-12-5 06:22:45 66 0

甚么是标签
在 WINDOWS / DOS 批处置编程中,使用标签定义一个顺序块,标签相似其它编程言语(例如:C言语)中的函数。
标签作为顺序块的示用意如下:
蓝色方框是 :firstLabel 标签,白色方框是 :secondLabel 标签


那末如何使用曾经定义的标签呢?
【标签不被调历时的流程】
在 WINDOWS / DOS 脚本编程中,个别使用goto命令或call命令调用标签。
假如标签没有被调用,则当脚本顺序履行到标签时,标签会作为个别顺序代码被履行(就像标签不存在同样)。
示例一


运转


【使用goto命令调用】
调用格局:goto :label
goto命令使CMD.EXE跳转到 label 的第一行开始履行,始终履行完 label 的最初一行,而后退出脚本顺序。
示例二


运转


解析
firstLabel被履行完后,间接退出脚本顺序了,secondLabel 标签并无失掉履行。
【使用call命令调用】
调用格局:call :label [ pararneters ]
call命令使CMD.EXE跳转到 label 的第一行开始履行,始终履行完label 的最初一行,而后再跳转至call命令的下一行持续履行脚本顺序。
对于传递给标签的参数 pararneters,详见 批处置文件的参数 、标签的参数
示例三


运转


解析
值得留意的是 :secondLabel标签被call命令履行完后,会持续履行call命令的后续顺序(包罗定义的标签代码,如下图白色方框所示),直到脚本完结。


【把标签改成函数】
经过上述示例能够看出:标签的履行流程和其它言语中的函数不彻底相反。怎么能力把标签改为咱们相熟的函数呢?
只需两边便可,步骤如下:
1、“goto :EOF” 语句作为每个标签的最初一行
2、“goto :EOF” 语句作为在脚本中第一个标签定义行的上一行
把示例三修正如下:


运转


当初,标签就变为“函数式标签”了。
【留意】
使用goto命令调用上述“函数式标签”时,被调用标签履行实现,会退出脚本顺序,这个好了解,毕竟标签的最初一行是“goto :EOF
使用call命令调用上述“函数式标签”时,标签履行实现,仍是会前往至call命令所外行的下一行持续履行。标签的最初一行是“goto :EOF”,该行被履行实现象征着该标签履行终了。【调用格局】call :label [ pararneters ]的语义是:被调用标签履行终了当即前往,持续履行call命令的后续语句。这里有些“绕”,请同窗们本人领会一下。
写作不容易,假如本文帮到了您,请您 “反对一下”。

发表回复

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则

:
中级会员
:
论坛短信
:
未填写
:
未填写
:
未填写

主题30

帖子45

积分201

图文推荐

  • 撞穿学校栅栏害死十一岁男孩的司机不必坐牢

    一位女司机撞穿学校栅栏、害死了11岁男孩,被罚20

  • 全科医生正告花粉症时节正在好转

    全国各地的全科医生正告春季的开端标记着花粉症时

  • 新西兰总理:出世在新西兰的新纳粹Thomas S

    新西兰总理拉克森称新纳粹Thomas Sewell是坏人,

  • 新州护士和助产士承受暂时加薪3%的前提

    新州护士和助产士投票承受政府提出的暂时加薪3%以

  • 新纳粹份子如何利用“普通父母”的掩护在反

    星期天,新纳粹份子在反移民集会开端前大约一个小