$put_perv_real = "/home/www/dvakompa-ru/dopol/"; ?>
Команда 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:
SET NEWSET=%1 = %2
После выполнения файла 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
В примере используется команда exit с параметром /b внутри вызываемой процедуры. Если данный ключ не указать, то вместо выхода из вызываемой процедуры будет выполнен выход из командного файла (завершение CMD.EXE)