bat批处理 call 和 goto 调用

前言全局说明

bat批处理 call 和 goto 调用

goto 微软官方说明: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/goto


一、call

1.1 call 说明

call :label 可以看成是函数调用, 创建新的执行环境, 新的环境的变量之类的都会继承当前环境;执行结束后恢复之前的环境
1.2 格式
call [drive:][path]<filename> [<batchparameters>] [:<label> [<arguments>]]
  1. [drive:][path]<filename>文件名, 指调用某个bat文件;
  2. batchparameters表示输入参数;
  3. :<label>标记点, 表示开启一个函数,从这个点开始执行;当然也会继承当前的环境变量;
  4. [drive:][path]<filename> 的优先级大于[:<label> [<arguments>]]

二、goto

2.1 说明
goto :label 指令指定程序下一步执行的位置;
goto :EOF和return类似;即推出当前程序;
label定义是一行都是, 可以包含空格, 但是不能包括;=之类的;
label的定义尽量避免二义性;可以前面加空格, :只能一个, 多了就变成注释了.
goto结合if可以实现bat没有的while循环;
goto不仅仅往回跳,也可以往下跳;
s2.2 语法
GOTO label

label 指定批处理程序中用作标签的文字字符串。


三、bat批处理 call 调用 并 传递参数

@echo off
SET val=""
SET val=%val:~1,-1%
call :EmptyTest %val%
goto :eof
:EmptyTest
if "%1"=="" ( echo Empyt!!! )
pause

%val:~1,-1%: 截取变量val的第二个至倒数第二个(0开始),例子:12345 ,结果 234
call: EmptyTest %val% 是调用EmptyTest标签时,将 %val% 变量参数值传入
bat的:标签,可以理解未 linux shell 的函数

效果:
image


四、



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://blog.csdn.net/weixin_44733774/article/details/134774852 ( ### 二)
https://tieba.baidu.com/p/4323239807
https://blog.csdn.net/rubikchen/article/details/127035360 (### 1.1)
https://blog.csdn.net/zgl2008/article/details/5280918 (截取)
https://www.jb51.net/article/271017.htm (goto跳转)



posted @   悟透  阅读(326)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2020-12-22 【转】学神IT教你Python应该怎么学
点击右上角即可分享
微信分享提示