CALL - виклик підпідпрограми чи командного файлу
CALL використовується для виклику з пакетного файлу іншого пакетного файлу з можливістю передачі йому вхідних параметрів.
Формат командного рядка CALL:
CALL [диск:][шлях]ім'я_файлу [параметри]
Параметри - Набір параметрів командного рядка, необхідних пакетному файлу.
CALL :мітка аргументи
Під час виклику створюється новий контекст поточного пакетного файлу із заданими аргументами, і керування передається на інструкцію, розташовану відразу після позначки.
CALL C:\SCRIPTS\test.bat - викликати командний файл C:\SCRIPTS\test.bat
CALL C:\SCRIPTS\test.bat param1 param2 - викликати командний файл C:\SCRIPTS\test.bat і передати йому параметри param1 та param2
CALL :M1 param1 - викликати процедуру, всередині поточного пакетного файлу, за міткою M1 та передати їй параметр param1
Для ілюстрації прикладів використання команди CALL можна скористатися пакетним файлом, наприклад, під ім'ям 1.bat наступного змісту:
CALL 2.bat IP 192.168.1.1 ECHO NEWSET = %NEWSET%
Файл 1.bat викликатиме файл 2.bat і передаватиме йому 2 параметри - рядки IP і 192.168.1.1. І файл, наприклад, виконає створення нової змінної з ім'ям NEWSET виду "IP = 192.168.1.1" Для цього у файлі 2.bat використовується команда SET:
Після виконання файлу 2.bat буде виконано повернення до файлу 1.bat і команда ECHO виведе на екран значення змінної NEWSET, сформоване командним файлом, що викликається.
При використанні дзвінка процедури за міткою в командному файлі, є деякі особливості. Для прикладу, створимо командний файл, в якому є підпрограма, що викликається, яка повинна обчислити суму двох чисел, що передаються їй в якості параметрів, і присвоїти результат змінної Rezult :
REM виклик підпрограми для підсумовування чисел 100 і 2 call :M1 100 2 REM Виведення результату echo Результат = %Rezult% pause exit
:M1 SET /A Rezult=%1+%2 exit /b