Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка OS 2011 v002 Уймин.docx
Скачиваний:
3
Добавлен:
07.11.2018
Размер:
14.88 Mб
Скачать
  1. Команда if

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

IF [NOT] ERRORLEVEL число команда

IF [NOT] строка1==строка2 команда

IF [NOT] EXISTимя_файлакоманда

Параметр NOT определяет, что MS-DOS должна выполнять команду только в случае ложного значения условия. "ERRORLEVEL число" определяет истинное условие только если предыдущая выполняемая COMMAND.COM программа возвращает код выхода, больший или равный заданному числу.

"Команда" задает команду, выполняемую MS-DOS при удовлетворении условия. "Строка1==строка2" определяет истинное условие только при совпадении указанных строк. Строки могут быть литеральными или представлять собой переменные (например, %1). Кавычки для литеральных строк не требуются.

EXIST имя_файла задает истинное условие, если указанный файл существует.

Приведемпример:

if not errorlevel 1 goto A

...

:A

...

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

  1. Команда for

Выполняет заданную команду для каждого файла или набора файлов. Эту команду можно использовать в командных файлах или в ответ на командную подсказку.

В первом случае используется синтаксис:

FOR %%переменная IN (множество) DO команда [параметры]

а во втором случае:

FOR %переменная IN (множество) DO команда [параметры]

Параметр %%переменная или %переменная представляет подставляемую переменную. Команду FOR заменяет эту переменную текстом каждой строки в заданном множестве, пока команда после ключевого слова DO не обработает все файлы. "Множество" задает один или более файлов или текстовых строк, которые вы хотите обработать с помощью заданной команды. Скобки обязательны. "Команда" задает команду, выполняемую для каждого включенного в множество файла. "Параметры" задают параметры данной команды (если она их использует). IN и DO - это не параметры, а обязательные ключевые слова команды FOR.

Чтобы избежать путаницы с параметрами командного файла %0 %9, для переменных следует использовать любые числа кроме 0 - 9. В простом командном файле вам хватит одного символа, например, %%F. Вложенность команд FOR на одной командной строке не допускается.

Параметр "множество" представляет одну или несколько групп файлов. В нем можно использовать трафаретные символы (* и ?). Допустимы следующие множества (*.doc), (*.doc *.dat *.rpt), (olg*.doc olgj*.rpt svt*.doc svt*.rpt), (ol??1991.* kr??1991.*).

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

Предположим, вы хотите использовать команду PRINT для распечатки содержимого всех файлов в текущем каталоге с расширением .DAT и .RPT. Для этого наберите команду:

for %f in (*.dat *.rpt) do print %f

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

for %f in (*.dat *.rpt) do type %f >prn: