КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операторы перехода GOTO и вызова CALL
Вызов внешних командных файлов Приостановка выполнения командных файлов Для того, чтобы вручную прервать выполнение запущенного bat-файла, нужно нажать клавиши <Ctrl>+<C> или <Ctrl>+<Break>. Однако часто бывает необходимо программно приостановить выполнение командного файла в определенной строке с выдачей запроса на нажатие любой клавиши. Это делается с помощью команды PAUSE. Перед запуском этой команды полезно с помощью команды ECHO информировать пользователя о действиях, которые он должен произвести. Например: ECHO Вставьте дискету в дисковод A: и нажмите любую клавишуPAUSEКоманду PAUSE обязательно нужно использовать при выполнении потенциально опасных действий (удаление файлов, форматирование дисков и т.п.). Например, ECHO Сейчас будут удалены все файлы в C:\Мои документы!ECHO Для отмены нажмите Ctrl-CPAUSEDEL "C:\Мои документы\*.*"Из одного командного файла можно вызвать другой, просто указав его имя. Например: @ECHO OFFCLSREM Вывод списка log-файловDIR C:\*.log:: Передача выполнения файлу f.batf.batCOPY A:\*.* C:\PAUSEОднако в этом случае после выполнения вызванного файла управление в вызывающий файл не передается, то есть в приведенном примере команда COPY A:\*.* C:\(и все следующие за ней команды) никогда не будет выполнена. Для того, чтобы вызвать внешний командный файл с последующим возвратом в первоначальный файл, нужно использовать специальную команду CALL файл Например:@ECHO OFFCLS:: Вывод списка log-файловDIR C:\*.log:: Передача выполнения файлу f.batCALL f.batCOPY A:\*.* C:\PAUSEВ этом случае после завершения работы файла f.bat управление вернется в первоначальный файл на строку, следующую за командой CALL (в нашем примере это команда COPY A:\*.* C:\). Командный файл может содержать метки и команды GOTO перехода к этим меткам. Любая строка, начинающаяся с двоеточия:, воспринимается при обработке командного файла как метка. Имя метки задается набором символов, следующих за двоеточием до первого пробела или конца строки.
Пример 3. Пусть имеется командный файл следующего содержания: @ECHO OFFCOPY %1 %2GOTO Label1ECHO Эта строка никогда не выполнится:Label1:: Продолжение выполненияDIR %2После того, как в этом файле мы доходим до команды GOTO Label1 его выполнение продолжается со строки:: Продолжение выполненияВ команде перехода внутри файла GOTO можно задавать в качестве метки перехода строку:EOF, которая передает управление в конец текущего пакетного файла (это позволяет легко выйти из пакетного файла без определения каких-либо меток в самом его конце). Для перехода к метке внутри текущего командного файла кроме команды GOTO можно использовать и рассмотренную выше команду CALL: CALL:метка аргументыПри вызове такой команды создается новый контекст текущего пакетного файла с заданными аргументами, и управление передается на инструкцию, расположенную сразу после метки. Для выхода из такого пакетного файла необходимо два раза достичь его конца. Первый выход возвращает управление на инструкцию, расположенную сразу после строки CALL, а второй выход завершает выполнение пакетного файла. Например, если запустить с параметром "Копия-1" командный файл следующего содержания: @ECHO OFFECHO %1CALL:2 Копия-2:2ECHO %1то на экран выведутся три строки: Копия-1Копия-2Копия-1Таким образом, подобное использование команды CALL похоже на вызов подпрограмм в языках высокого уровня.
Дата добавления: 2015-03-29; Просмотров: 673; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |