HOWTO · Batch

在批处理脚本中创建函数

本教程将讨论如何在批处理脚本中创建函数。

本页内容

如果你为该特定任务创建函数,则无需一次又一次地为同一任务编写代码。本文将讨论如何在批处理脚本中创建函数。

在批处理脚本中创建函数

创建函数的一般格式如下所示。

:function_name

调用此函数的一般格式是使用带有 :function_name 的 CALL 关键字,如下所示。

CALL :function_name

现在让我们看一些带有适当解释的示例,以使其更易于理解。

在下面的示例中,我们刚刚创建了一个打印消息 Hello! It's the function...。我们的这个例子的代码看起来像这样:

@echo off
CALL :showmessage
EXIT /B %ERRORLEVEL%

:showmessage
ECHO Hello! It's the function...
EXIT /B 0

你可以注意到我们写了一行 EXIT /B %ERRORLEVEL%。此行旨在在函数完成其工作后退出程序;否则,程序将继续执行该函数。

并创建了 EXIT /B 0 行以退出该函数。

运行代码后,你将获得以下输出。

输出:

Hello! It's the function...

调用带参数的函数

在我们的下一个示例中,我们将调用一个带参数的函数。

调用函数的一般格式如下所示:

CALL :function_name %parameter%

并且可以通过使用诸如%~1 之类的参数索引来访问函数内部的参数。

我们的示例代码如下所示:

@echo off
SET FuncVar=10
CALL :showvar %FuncVar%
EXIT /B %ERRORLEVEL%

:showvar
ECHO Your passed variable is %~1
EXIT /B 0

在示例中,我们声明了一个名为 FuncVar 的变量,其值为 10。之后,我们调用函数并将这个变量作为参数传递。

在函数中,我们只是打印了传递给函数的参数。现在输出将如下所示。

输出:

Your passed variable is 10

调用具有多个参数的函数

使用多个参数时,你必须遵循以下格式:

CALL :function_name %parameter1% %parameter2% %parameter3%

在我们的下一个示例中,我们将多个变量作为参数传递给函数。示例代码将是,

@echo off
SET FuncVar1=10
SET FuncVar2=50
CALL :showvar %FuncVar1% %FuncVar2%
EXIT /B %ERRORLEVEL%

:showvar
ECHO Your 1st parameter is %~1
ECHO Your 2nd parameter is %~2
EXIT /B 0

你可以注意到,我们根据参数的索引访问了两个参数,例如 %~1 和 %~2。运行代码后,你将获得以下输出。

输出:

Your 1st parameter is 10
Your 2nd parameter is 50
注意
我们在本文中分享的代码是批处理编写的,仅适用于 Windows CMD。