Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


А… Тут всё интереснее. Надо ещё читать «call /?»:
Цитата:

Изменение команды CALL при включении расширенной обработки команд:

Команда CALL допускает использование меток в качестве адресата вызова.
Применяется следующий синтаксис:
Код: Выделить весь код
CALL :метка аргументы
При вызове создается новый контекст текущего пакетного файла с заданными
аргументами, и управление передается на инструкцию, расположенную сразу после
метки
. Для выхода из такого пакетного файла необходимо дважды достичь
его конца. Первый выход возвращает управление на инструкцию, расположенную
сразу после строки CALL, а второй выход завершает выполнение пакетного файла.

  • При вызове «call :rename "%%i"» создаётся новый контекст текущего пакетного файла и управление передаётся за метку «:rename».
  • Исполняется код после метки «:rename». Как исполнение доходит до «goto :eof» (второго) — происходит передача управления в конец пакетного файла и тем самым — завершение текущего («нового» из предыдущего пункта) контекста, и управление возвращается на следующую после вызывавшего «call» инструкцию.
  • Продолжается исполнение пакетного файла, вплоть до «goto :eof» (первого), который аналогично передаёт управление в конец пакетного файла и завершает его работу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:03, 29-07-2014 | #12