Составители:
18
@ЕСНО OFF
REM Если файл был запущен без параметров, выходим из него,
REM иначе печатаем первый параметр
IF -%1==- GOTO :EOF
ECHO %1
Второй способ передачи управления, причем как внутри самого пакетного
файла, так и при обращении к другим пакетным файлам – использование команды
call.
Для того, чтобы обратиться к внешнему командному файлу достаточно
указать его и его параметры в команде call:
call файл пакетные_параметры
Пример:
call test.bat par1 par2 par3
Данный вызов приведет к передаче управления командному файлу test.bat
c тремя указанными параметрами. Альтернативой подобному запуску может стать
использование имени стороннего командного файла в качестве имени команды:
test.bat par1 par2 par3
Но при последнем вызове после окончания работы командного файла
test.bat управление не будет возвращено в вызывавший командный файл, а, следо-
вательно, не будут выполнены все следующие за командой вызова инструкции.
Вызов же командой call позволяет по окончании работы вызванного командного
файла вернуться в вызвавший и продолжить его выполнение.
В качестве адресата вызова команды call допустимо использовать метки
внутри текущего командного файла:
CALL :метка аргументы
При вызове такой команды создается новый контекст текущего пакетного
файла с заданными аргументами и управление передается на инструкцию, распо-
ложенную сразу после метки. Для выхода из такого пакетного файла необходимо
два раза завершить его работу, достигнув конца командного скрипта или вызвав
команду exit /b (ключ /b позволяет завершить работу лишь командного файла, а
не сеанса оболочки). При этом первый выход будет означать возврат управления
на инструкцию, расположенную сразу после строки call, а второй выход заверша-
ет выполнение пакетного файла. Такое поведение команды call позволяет оформ-
лять фрагменты кода в виде подпрограмм:
call :proc1 par1 par2
...
:proc1
rem Здесь %0=:proc1 %1=par1 %2=par2
...
exit /b
...
Команды перехода
Организация ветвлений алгоритмов в зависимости от выполнения или не-
@ЕСНО OFF REM Если файл был запущен без параметров, выходим из него, REM иначе печатаем первый параметр IF -%1==- GOTO :EOF ECHO %1 Второй способ передачи управления, причем как внутри самого пакетного файла, так и при обращении к другим пакетным файлам – использование команды call. Для того, чтобы обратиться к внешнему командному файлу достаточно указать его и его параметры в команде call: call файл пакетные_параметры Пример: call test.bat par1 par2 par3 Данный вызов приведет к передаче управления командному файлу test.bat c тремя указанными параметрами. Альтернативой подобному запуску может стать использование имени стороннего командного файла в качестве имени команды: test.bat par1 par2 par3 Но при последнем вызове после окончания работы командного файла test.bat управление не будет возвращено в вызывавший командный файл, а, следо- вательно, не будут выполнены все следующие за командой вызова инструкции. Вызов же командой call позволяет по окончании работы вызванного командного файла вернуться в вызвавший и продолжить его выполнение. В качестве адресата вызова команды call допустимо использовать метки внутри текущего командного файла: CALL :метка аргументы При вызове такой команды создается новый контекст текущего пакетного файла с заданными аргументами и управление передается на инструкцию, распо- ложенную сразу после метки. Для выхода из такого пакетного файла необходимо два раза завершить его работу, достигнув конца командного скрипта или вызвав команду exit /b (ключ /b позволяет завершить работу лишь командного файла, а не сеанса оболочки). При этом первый выход будет означать возврат управления на инструкцию, расположенную сразу после строки call, а второй выход заверша- ет выполнение пакетного файла. Такое поведение команды call позволяет оформ- лять фрагменты кода в виде подпрограмм: call :proc1 par1 par2 ... :proc1 rem Здесь %0=:proc1 %1=par1 %2=par2 ... exit /b ... Команды перехода Организация ветвлений алгоритмов в зависимости от выполнения или не- 18
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »