Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ANSWERS.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
833 Кб
Скачать
☆
  1. Программирование в среде командного интерфейса. Пакетные командные файлы: - внутренние команды, передача параметров.

После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог cкриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.

Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы if, goto и for (в системах семейства Windows NT его возможности существенно расширены), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).

Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2, или .BTM в 4DOS или подобных оболочках.

Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (файлов .EXE либо любых других исполняемых файлов). Данные программы значительно расширяют возможности пакетных файлов.

Специальных команд, которые используются в BAT файлах не много. Именно специальных, которые могут пригодиться при создании логики командного файла. Конечно, эти команды относятся к внутренним командам MS DOS и могут использоваться в командной строке, но все-таки эти команды обретают смысл только в пакетных файлах.

call Вызов одного пакетного файла из другого.

echo Вывод сообщений и переключение режима отображения команд на экране.

for Запуск указанной команды для каждого из файлов в наборе.

goto Передача управления в отмеченную строку пакетного файла.

if Оператор условного выполнения команд в пакетном файле.

pause Приостановка выполнения пакетного файла и вывод сообщения

rem Помещение комментариев в пакетные файлы и файл CONFIG.SYS.

shift Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.

Определение пакетного файла

Пакетные файлы можно считать особой категорией исполняемых программ. Такие файлы должны иметь тип .BAT (от английского слова batch - "пакетный").

Запуск пакетного файла осуществляется точно так же, как и запуск обычной исполнимой программы типа .COM или .EXE, то есть для этого указывается имя файла и, если требуется, параметры.

Пример запуска пакетного файла START:

C:\>start

Роль пакетных файлов особая. Они служат для организации удобного взаимодействия пользователей с прикладными программными системами. Пакетный файл, в отличие от обычных исполнимых программ, содержит не машинные коды программ, а текст, который интерпретируется командным процессором DOS. Cтроки этого текста могут представлять собой:

- встроенные команды DOS;

- обращения к исполнимым программам;

- вызовы других пакетных файлов;

- специальные команды для управления выдачей на экран;

- специальные команды для организации ветвлений и циклов;

- метки.

Все эти конструкции, за исключением меток, можно считать командами DOS.

В пакетных файлах DOS могут фигурировать специальные команды, предназначенные для создания нетривиальных управляющих последовательностей.

Важное свойство пакетных файлов - возможность задания в их текстах формальных параметров. В пакетных файлах могут использоваться формальные параметры %1 - %9.

Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним, как указывалось, относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.

Наверх

Команда GOTO

Команда GOTO позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (это имеет смысл в сочетании с командой ветвления IF).

Пример. Пусть командный файл PR.BAT имеет вид:

echo off

:m1

echo Вывод на принтер файла %1

echo Для остановки нажмите CTRL-C

copy %1 prn

pause

goto m1

В данном примере вторая строка содержит метку m1 (признаком метки является двоеточие в начале строчки), а последняя строка - команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер файла, имя которого подставляется вместо формального параметра %1. Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и прервать работу или продолжить ее дальше.

Допустим, пользователь дает с терминала команду:

A:\>pr docum.doc

Начинается циклическое исполнение файла PR.BAT с фактическим параметром DOCUM.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши CTRL-C.

Команда IF позволяет проверять условие и выполнять ветвление в зависимости от результата его проверки.

Она имеет три формата:

Формат1. Проверка кода завершения какой-либо программы, сработавшей перед оператором IF.

Используется конструкция следующего вида: IF ERRORLEVEL <N>

Любая программа может с помощью специального прерывания DOS выработать в момент своего окончания собственный код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.

Формат2. Проверка наличия файла в каталоге.

В этом случае начало оператора IF имеет вид: IF EXIST <расширенное имя файла>

В данном случае команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным.

Формат3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры.

Соответствующая конструкция может иметь вид: IF %<N> == <текстовая строка>

Здесь значение формального параметра %<N> сопоставляется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.

Любое из этих условий может задаваться со знаком логического отрицания NOT. При этом истинность условия трактуется в обратном смысле, по сравнению с вышеприведенными рассуждениями.

Наверх

Команда FOR

Команда FOR обеспечивает циклическое выполнение команд DOS. При этом можно задать формальный параметр и список фактических параметров (обычно - имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды.

Пусть имеется необходимость систематически копировать файлы PROG.PAS PROG.OBJ и PROG.EXE из рабочего каталога на виртуальный диск Е:. С этой целью можно в соответствующем командном файле дать команду:

for %%A in (PAS OBJ EXE) do copy PROG.%%A е:

Здесь формальный параметр %%A последовательно сопоставляется со списком фактических параметров в круглых скобках и используется в команде COPY, которая в данном случае сработает 3 раза подряд.

Подставив в качестве второго аргумента команды COPY вместо имени Е: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.

Два следующих подряд знака % должны предшествовать формальному параметру только в командных файлах. При употреблении команды FOR непосредственно с терминала используется одиночный знак %.

Наверх

Команда SHIFT

Команда SHIFT вызывает сдвиг списка формальных параметров относительно списка фактических параметров.

Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры A, B, C, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:

%1=A %2=B

Однократное применения команды SHIFT дает следующее соответствие:

%1=B %2=C

Двукратное применение вызывает дальнейший сдвиг:

%1=C %2=D

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]