Курс DOS

    Определение GOTO IF FOR SHIFT

 
 

1. Основные понятия и определения

2. Команды для работы в среде MS DOS

   2.1 Работа с каталогами файлов

   2.2 Команды поддержки файлов

   2.3 Вспомогательные команды DOS. Часть I

   2.4 Вспомогательные команды DOS. Часть II

   2.5 Вспомогательные команды DOS. Часть III

3. Пакетные файлы

4. Структура DOS

5. Конфигурирование системы

   5.1 С чего начать?

   5.2 CONFIG.SYS

   5.3 AUTOEXEC.BAT

   5.4 Справочник ко-манд конфигурирования

   5.5 Примеры

6. Краткий справочник команд DOS

Учебное пособие по Norton Commander

 

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

 

Пакетные файлы можно считать особой категорией исполняемых программ. Такие файлы должны иметь тип .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

 

Команда 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

 

Наверх