Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команды организаций ветвлений и циклов






 

2.6.1. Команда GOTO позволяет передавать управление на указанную метку и осуществлять повторное выполнение фрагментов командного файла.

Признаком метки является символ ": " в начале строки.

 

Пример файла example.bat:

 

: m

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

copy %1 prn

pause

goto m

 

Первая строка содержит метку m (ее признаком является символ ": "), последняя - команду перехода на эту метку. Если вызвать этот командный файл следующим образом:

 

C: \> example.bat my.txt< ENTER>

 

то на принтер будет выведена одна копия файла my.txt. Здесь my.txt - фактический параметр, который подставляется вместо формального параметра %1.

 

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

 

Формат команды: IF условие команда

Параметры:

команда - это любая допустимая команда (в том числе GOTO). Эта команда выполняется, если условие в команде IF истинно, в противном случае команда игнорируется;

условие - это одно из приведенных ниже выражений:

errorlevel число,

exist имя-файла,

строка1==строка2,

not условие.

Следует заметить, что при сравнении строк, содержащих символы параметров %0-%9, следует проявлять осторожность. Например, сравнение второго параметра командного файла со строкой SSS не следует делать так:

 

if %2 == SSS...

Дело в том, что если в командном файле меньше двух параметров, то символы %2 будут замещены пустой строкой, и при выполнении команды возникает ошибка. Еще опаснее сравнение:

 

if SSS == %2...

 

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

if -%2 == -SSS...

 

Оно годится в любом случае.

Модификации этой команды:

 

- проверка кода завершения программы, исполняемой перед IF:

if errorlevel < n>

Любая программа может выработать в момент своего окончания код завершения. Он сравнивается с заданным числом n. Условие считается выполненным, если код завершения больше или равен n.

 

- проверка наличия файла в каталоге:

if exist < имя-файла или шаблон>

Условие считается выполненным при обнаружении файла в указанном или текущем каталоге.

 

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

if %< n> ==< текстовая строка>

Условие считается выполненным при совпадении параметра %< n> с конкретной строкой.

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

 

2.6.3. Команда FOR осуществляет повторение фрагмента командного файла заданное число раз. Она имеет следующую форму записи:

 

for %%< имя переменной> in < список значений переменной, разделенных пробелами> do < команда>. Например:

 

for %%A in (*.bat) do type %%A

 

Команда TYPE будет выполняться для всех файлов, расположенных в текущем каталоге и имеющих тип BAT.

 

2.6.4. CALL- вызов командного файла из другого командного файла.

 

Формат команды- CALL имя-командного-файла [ параметры ]

Команда CALL вызывает выполнение командного файла из другого командного файла.

Если в командной строке указаны какие-либо параметры, кроме имени командного файла, то эти параметры передаются командному файлу, они доступны там как значения символов %1-%9. Команда CALL работает только в версиях MS DOS и PS DOS, начиная с версии 3.3, и в DR DOS. В противных случаях используется команда EXIT.

 

Команда EXIT используется в случае вложенных вызовов командных файлов. Предположим, что из файла num1.bat необходимо вызвать файл num2.bat, выполнить его и вернуться в num1.bat. Вложенные вызовы с возвратом возможны лишь при создании копии командного процессора command.com. Вызов num2.bat в файле num1.bat должен осуществляться так: command /C num2, а при возврате в файле num2.bat должна появиться строка EXIT. Следует иметь в виду, что при вызове каждой копии командного процессора дополнительно расходуется около 4 Кбайт оперативной памяти.

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал