bat文件c语言,[BATCH] 用.bat文件写函数

本文详细介绍了如何使用批处理文件(.bat)通过`exit/b`和`shift`指令模拟Java中的可变参数功能,展示了如何获取和传递函数返回值,以及如何处理不同数据类型的返回。通过实例演示了如何在批处理中实现类似`add`方法的计算并输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何用批处理文件实现类似下方的 java 代码的效果呢?

public class Demo{

public static int add(int... num){

int rsl = 0;

for(int i : num){

rsl+=i;

}

return rsl;

}

public static void main(String[] args){

System.out.println(add(1,2,3));

}

}

先直接给出代码:

add.bat

@echo off

set /a rsl=0

:do

if {%1}=={} exit /b %rsl%

set /a rsl=%rsl%+%1

shift

goto :do

goto :EOF

demo.bat

@echo off

call add.bat 1 2 3

echo.%errorlevel%

pause

运行 demo.bat 即可得到结果6。

下面讲一下部分指令的作用。

一、exit /b %rsl%

我们直接引用

exit /?

所得到的的信息:

退出 CMD.EXE 程序(命令解释器)或当前批处理脚本。

EXIT [/B] [exitCode]

/B 指定要退出当前批处理脚本而不是 CMD.EXE。如果从一个

批处理脚本外执行,则会退出 CMD.EXE

exitCode 指定一个数字号码。如果指定了 /B,将 ERRORLEVEL

设成那个数字。如果退出 CMD.EXE,则用那个数字设置

过程退出代码。

可以看到,当我们执行

call add.bat 1 2 3

的时候,变量 errorlevel 会被设为 rsl 的值。我们可以通过这种方法获得函数所处理出来的值(仅限整型)。

二、shift

继续通过 shift /? 获取帮助:

更改批处理文件中可替换参数的位置。

SHIFT [/n]

如果命令扩展被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉

命令从第 n 个参数开始移位;n 介于零和八之间。例如:

SHIFT /2

会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。

原本我们调用 add.bat 时,%1、%2、%3会分别设为1、2、3。每当我们将 %1 的值加进 rsl 时,便可用 shift 指令令参数位移,这样便能实现类似 java 的可变参数的效果。

可惜这种方法只能返回整型,若要返回其他种类的数据,可以通过在函数内部定义变量(比如在该例子中,定义 add_rsl),函数执行完后直接在外部调用该变量即可。

以下是例子:

@echo off

call :add 1 2 3

echo.%add_rsl%

pause

goto :EOF

:add

set /a add_rsl=0

:add_do

if {%1}=={} goto :EOF

set /a add_rsl=%add_rsl%+%1

shift

goto :add_do

goto :EOF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值