[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП (Всякие мелочи), страница 10
Описание файла
Файл "[2009] Большаков С.А. - Методическое пособие по выполнению ЛР по СП" внутри архива находится в папке "Всякие мелочи". PDF-файл из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
Если подразумевается возврат в основной командный файл при таком запуске, то необходимо использовать директиву CALL для запуска нового командного файла и директиву EXIT [/b] для корректного возврата или завершения работы. Пример запуска командного файла:>MAYBATCH.BAT↵или>MAYBATCH↵Во втором случае расширение опущено, но при этом нужно быть точно знать, что вданном каталоге нет файлов *.ЕХЕ или *. СОМ с таким же именем.При запуске из другого командного файла:CALL MAYBATCH.BAT PAR1PAR2И возврат из файла MAYBATCH.BAT:EXIT /bПараметр определяет в нашем случае возврат в основной файл. Завершения работыCMD.EXE не выполняется. Режим работы команды EXIT зависит от выбора командногопроцессора для использования командной строки (CMD.EXE или COMMAND.COM).5.3.
Переменные командных файловЯзык командных файлов является очень ограниченным с точки зрения использования переменных. Допускаются только символьные переменные, причем их число ограничено объемом буфера, выделяемого для переменных окружения. Можно использоватьтолько одну стандартную переменную целого типа – ERRORLEVEL (об этой переменнойречь пойдет ниже), которая содержит код возврата исполняемых программ и директив вкомандном файле и формируется автоматически.Размер области под системные переменные может быть установлен в специальныхсистемных переменных, которые устанавливаются при загрузке ОС. Это переменные:SHELL= [<имя и путь к command.com>]/E:<число> <параметры …>Для файла config.sys/nt. Или:command [<имя и путь к command.com>]/E:<число> <параметры …>Для файла config.sys/nt.
Или:SET COMSPEC =[<имя и путь к command.com>]/E:<число> <параметры …>Для переменной окружения COMSPEC, которая может быть переопределена в режиме командной строки. Значение параметра <число> определяет размер буфера для переменных окружения программы, оно может находиться в пределах от 160 до 32768. Поумолчанию оно равно 256 байт.2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”41Переменные командных файлов могут быть использованы в операторах командныхфайлов, могут быть переопределены, выведены на экран дисплея. Основной оператор изменения переменных это оператор SET. Например:SET VAR=MET1Переменные имеют строковый тип. Каждая переменная имеет имя (название, идентификатор) и значение.
Для использования значения переменных их необходимо окружить знаком процент (%VAR%). В следующем примере показано как использовать значение и имя:ECHO OFF…SET VAR=MET1ECHO VARECHO %VAR%…После выполнения данного фрагмента на экране дисплея мы получим на экранедисплея:>VAR>MET1Переменные в командных файлах могут использоваться в различных директивахкомандных файлов, в том числе и в директиве IF:IF (%VAR%) == (FIN) GOTO MFINISHЗдесь проверяется значение переменной и выполняется переход на меткуMFINISH.
Или в операторах GOTO:GOTO %VAR%Переход выполняется по значению переменной VAR. Для перехода можно использовать и переменную ERRORLEVEL:GOTO M%ERRORLEVEL%В этом случае будет выполнен переход на метки: M1 (При ERRORLEVEL=1), M2(При ERRORLEVEL=2) и т.д. Такие метки должны быть объявлены в данном командномфайле. Можно использовать и составное значение двух и более переменных:SET VAR=METGOTO %VAR%%ERRORLEVEL%В этом случае будет выполнен переход на метки: MET1 (При ERRORLEVEL=1),MET2 (При ERRORLEVEL=2) и т.д.
Ниже мы рассмотрим и другие примеры использования переменных командных файлов.5.4. Параметры командных файловВыше было отмечено, что командные файлы могут запускаться с параметрами.Рассмотрим требования к такому запуску. Параметры передаются в программу командного файла и могут в нем использоваться наравне с переменными (параметры имеют обозначение - %0, %1, … %9). Синтаксис запуска с параметрами на языке БНФ имеет вид:<запуск с параметрами>:= <имя программы>_ <параметр><запуск с параметрами> <разделитель> <параметр><разделитель> := _ |,| ;|Или так:<запуск с параметрами>:= <имя программы>_><параметр>[ {<разделитель><параметр> …} ]Пример запуска командного файла с параметрами:>MYBATCH.BAT PAR1 , PAR2 , , PAR4>MYBATCH.BAT PAR1 PAR2 PAR3Из примеров видно, что разделителями параметров могут быть: пробелы, запятые иточки с запятой.
Могут использоваться запятые и точки с запятой, в этом случае они аналогичны пробелам. Возможное число параметров, задаваемых при запуске командного2009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”42файла, определяется возможной длинной запуска программ в режиме командной строки.Если вы работаете в режиме эмуляции ДОС, под управлением файлового менеджера, тострока запуска командного файла вместе с параметрами не должна превышать 128 символом. Нетрудно подсчитать, что предельное число параметров при этом может быть 63(проверьте сами). Кстати, такое ограничение действительно и для программ на Ассемблере, запускаемых в режиме эмуляции. Если мы работаем под управлением CMD.EXE, точисло параметров и длина отдельного параметра командного файла практически неограниченны.Задание параметров можно проиллюстрировать на следующем примере.
Пусть унас создан командный файл следующего вида (Test_par.bat):ECHOECHOECHOECHOECHOOFFProgramm Name - %0First Parameter - %1Second Parameter - %2Third Parameter - %3При запуске:>test_par.bat par1 par2 par3Мы получим:Programm Name - test_par.batFirst Parameter - par1Second Parameter - par2Third Parameter - par3При запуске:>test_par.bat par1 , , par3Или:>test_par.bat par1 ;; par3Мы получим:Programm Name - test_par.batFirst Parameter - par1Second Parameter – par3Third Parameter -Так как запятые и точки с запятой эквивалентны пробелам, то фактически рассматривается только два параметра.Если перечень необходимых параметров превышает девять (%1 - %9), то для доступа к старшим параметрам можно воспользоваться директивой SHIFT. Эта директивасдвигает параметры влево: 2–й (%2) параметр становиться 1-м (%1) и так далее. Покажемэто на примере:@ECHO OFFECHO Programm Name - %0ECHO First Parameter - %1ECHO Second Parameter - %2SET Name =%0SHIFTECHO.ECHO Programm Name - %0ECHO First Parameter - %1ECHO Second Parameter - %2ECHO %Name%После запуска командного файла:>test_par.bat par1 par2Получим:Programm Name - test_par.batFirst Parameter - par1Second Parameter – par2Programm Name - par1First Parameter – par22009 год 2 курс 4-й семестр Большаков С.А.“Системное программирование”Second Parameter –test_par.bat43Параметры, включая и параметр %0, теряются безвозвратно, если их предварительно те сохранить в переменной окружения (как показано в примере).
Команда ECHO с одной точной (“ECHO.”) используется в командных файлах для пропуска строки.5.5. Создание простого командного файлаТеперь мы знаем достаточно, для того чтобы создать свой командный файл. Назовем его FIRST.BAT. Пусть он имеет следующее содержание:ECHO OFFECHO BATCH FILEECHO %0SET VAR=MET1ECHO VARECHO %VAR%ECHO.REM This is Comment ===========IF (%1) == () GOTO %VAR%PAUSE TESTECHO FINISHEXITREM ================:MET1ECHO FINISH - MET1PAUSE NO PARAMETEREXIT /bВ этом файле показано как:− Отключить вывод выполняемых команд на экран (ECHO OFF);− Выводить на экран текст и параметры (ECHO BATCH FILE , ECHO %0);− Присваивать переменным значения (SET VAR=MET1);− Выводить на экран значение переменной (ECHO %VAR%);− Выводить пустую строку (ECHO.);− Использовать комментарии в командном файле (REM);− Проверять параметр и переходить по метке (IF (%1) == () GOTO %VAR%).
Дляпроверки пустого параметра нужно использовать вспомогательные символы иначеконструкция оператора будет ошибочной. Можно и по другому – (IF .%1 == .GOTO %VAR% );− Задавать приостановку выполнения командного файла (PAUSE TEST и PAUSENO PARAMETER) с выдачей сообщения;− Выходить из программы с завершением командного файла и командного процессора (EXIT);− Выходить из программы с завершением только командного файла (EXIT /b);Данный командный файл можно запустить с параметром и без параметра. При запуске с параметром:>first.bat par1На экране мы получим:>ECHO OFFBATCH FILEFIRST.batVARMET1Для продолжения нажмите любую клавишу .