Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Команды организаций ветвлений и циклов ⇐ ПредыдущаяСтр 2 из 2
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 Кбайт оперативной памяти.
|