Для имитации функций и обращений к ним в bat-файлах можно воспользоваться такой
командой как call. Синтаксис в короткой форме выглядит следующим образом:
call [:метка [аргументы]]
Данная команда работает стеково (FILO): будучи вызванной первой в очереди вызовов в пакетном файле, извлекается последней. Как пример приведен батник, вычисляющий факториал числа.
________________
@echo off
call :factorial %1
echo %RESULT%
exit /b
rem Функция для подсчета значения факториала
rem Вход:
rem %1 - Число, для которого необходимо подсчитать факториал
rem Выход:
rem %RESULT% - Значение факториала
:factorial
if %1 == 0 (
set RESULT=1
exit /b
)
if %1 == 1 (
set RESULT=1
exit /b
)
set /a PARAM=%1 - 1
call :factorial %PARAM%
set /a RESULT=%1 * %RESULT%
exit /b
________________
На рисунках 1 и 2 рассмотрена работа данного скрипта и представлен подход к имитации понятия функций в butch-файлах.
Рис. 1. Работа батника, вычисляющего факториал числа |
Рис. 2. Аналог функции в butch-файле |