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>]]
- [drive:][path]<filename>文件名, 指调用某个bat文件;
- batchparameters表示输入参数;
- :<label>标记点, 表示开启一个函数,从这个点开始执行;当然也会继承当前的环境变量;
- [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 的函数
效果:
四、
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
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跳转)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2020-12-22 【转】学神IT教你Python应该怎么学