批处理定义子程序

本文将介绍怎样在批处理程序中定义子程序,以及怎样调用子程序,子程序传参、返回数据。

在批处理程序中可以调用外部可运行程序,比如:exe程序,也可调用其他批处理程序。但是不够方便,如果被调用的程序很多,就显得不够简明了,很繁琐。

在 Windows XP 中,批处理可以调用本程序中的一个程序段,相当于子程序,这些子程序一般放在主程序后面。

子程序调用格式:call :label arguments

子程序语法:

:label
command1
command2
......
commandn
goto :eof

【注意】

  • 在子程序段中,参数 %0 指标签 :label。

  • 子过程一般放在最后,并且注意在主程序最后要加上 exit 或 跳转语句,避免错误的进入子过程。

  • 子程序和主程序中的变量都是全局变量,其作用范围都是整个批处理程序。

  • 传至子程序的参数在 call 语句中指定,在子程序中用 %1、%2 至 %9 的形式调用,而子程序返回主程序的数据只需在调用结束后直接引用就可以了,当然也可以指定返回变量。

实例:定义一个子程序,然后在主程序中调用它。代码如下:

@echo off
rem 定义主程序段

:main
echo main start...
rem 输出空行
echo.
rem 调动子程序
call :sub
echo.
echo main finished...
pause
exit

rem 定义一个子程序
:sub
echo.
echo sub start....
ping 127.0.0.1
echo sub finished
goto :eof

实例:定义一个子程序,向子程序传递参数。子程序则把传递的参数放入到变量中。

@echo off
call :sub return 你好
echo 子程序返回值:%return%
pause
exit

:sub
set %1=%2
goto :eof

实例:要求用户输入一个大于1的数字,然后使用子程序计算 1,2,3,4,.....n 的总和,其中:n为用户输入的数字。如下:

@echo off
set sum=0
set count=1
set /p maxValue=输入一个数字:
rem 调用子程序
call :sub sum %maxValue%
echo 数据求和结果:%sum%
pause
exit

rem 子程序
:sub
set /a %1=%1+%count%
if %count% leq %2 (
    set /a count=%count%+1
    goto sub
)
goto :eof

点击查看更多批处理知识……

如果在胜利前却步,往往只会拥抱失败;如果在困难时坚持,常常会获得新的成功。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号