Задание 4. КомандыIf, Goto, Call

Обработка критерий в пакетных файлах осуществляется командой If.

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

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

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

NOT Направляет истинность условия: настоящее условие становится неверным, а неверное - настоящим.

ERRORLEVEL число Условие является настоящим, если код возврата последней выполненной программки не меньше обозначенного числа.

строчка1==строчка2 Это условие является настоящим, если обозначенные строчки совпадают Задание 4. КомандыIf, Goto, Call.

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

команда Задает команду, выполняемую при истинности условия. За этой командой может следовать ключевое слово ELSE, служащее для указания команды, которая должна производиться в этом случае, если условие неверно.

Предложение ELSE должно размещаться в той же строке, что и команда Задание 4. КомандыIf, Goto, Call,

последующая за главным словом IF. К примеру:

IF EXIST имя_файла (

del имя_файла

) ELSE (

echo имя_файла missing.

)

Последующий пример содержит ОШИБКУ, так как команда del должна заканчиваться переходом на новейшую строчку:

IF EXIST имя_файла del имя_файла ELSE echo имя_файла missing

Последующий пример также содержит ОШИБКУ, так как команда ELSE должна размещаться в той же строке Задание 4. КомандыIf, Goto, Call, что и команда, последующая за IF:

IF EXIST имя_файла del имя_файла

ELSE echo имя_файла missing

Вот верный пример, где все команды размещены в одной строке:

IF EXIST имя_файла (del имя_файла) ELSE echo имя_файла missing

Изменение команды IF при включении расширенной обработки команд:

IF [/I] строчка1оператор_сравнения строчка2 команда

IF CMDEXTVERSION число команда

IF DEFINED переменная команда

где оператор_сравнения Задание 4. КомандыIf, Goto, Call воспринимает последующие значения:

Таблица 7. Допустимые значения оn_сопоставления

Оператор Описание Оператор Описание
EQU Равно LEQ меньше либо равно
NEQ не равно GTR больше
LSS Меньше GEQ больше либо равно

а ключ /I, если он указан, задает сопоставление текстовых строк без учета регистра. Ключ /I можно также использовать и в форме строчка1==строчка2 команды IF. Сопоставления проводятся Задание 4. КомандыIf, Goto, Call по общему типу данных, так что если строчки 1 и 2 содержат только числа, то обе строчки преобразуются в числа, после этого производится сопоставление чисел.

Условие CMDEXTVERSION применяется подобно условию ERRORLEVEL, но значение сравнивается с внутренним номером версии текущей реализации расширенной обработки команд. 1-ая версия имеет номер 1. Номер версии будет возрастать на единицу Задание 4. КомандыIf, Goto, Call при каждом добавлении существенных способностей расширенной обработки команд. Если расширенная обработка команд отключена, условие CMDEXTVERSION никогда не бывает поистине.

Условие DEFINED применяется подобно условию EXISTS, но воспринимает в качестве аргумента имя переменной среды и возвращает настоящее значение, если эта переменная определена.

Строчка %ERRORLEVEL% будет развернута в строковое представление текущего значения кода ошибки Задание 4. КомандыIf, Goto, Call ERRORLEVEL, кроме ситуации, когда уже имеется переменная среды с именованием ERRORLEVEL; в схожем случае подставляется значение этой переменной. К примеру, при помощи данной строчки можно выполнить последующее:

goto answer%ERRORLEVEL%

:answer0

echo Получен код возврата 0

:answer1

echo Получен код возврата 1

Допускается и применение обрисованных выше операторов числового сопоставления:

IF %ERRORLEVEL% LEQ 1 gotookay

Строчка %CMDCMDLINE% будет Задание 4. КомандыIf, Goto, Call развернута в начальную командную строчку, переданную CMD.EXEдо хоть какой обработки, кроме ситуации, когда уже определена переменная среды с именованием CMDCMDLINE, в схожем случае подставляется значение этой переменной.

Строчка %CMDEXTVERSION% будет развернута в строчку, представляющую собой текущее значение CMDEXTVERSION, кроме ситуации, когда уже имеется переменная среды с именованием CMDEXTVERSION; в схожем случае подставляется Задание 4. КомандыIf, Goto, Call значение этой переменной.

Команда Goto

Команда Goto, эквивалентная бесспорному переходу в языке высочайшего уровня, в пакетной программке реализует передачу правления ОС Windows XP в строчку, определенную символьной меткой. Когда метка найдена, выполнение длится со последующей за ней строчки. Команда Goto неразрывно связана с описанной чуть повыше командой If, в совокупы Задание 4. КомандыIf, Goto, Call обеспечивающей возможность сложных программных конструкций с переходами.

Синтаксис команды Goto:

Goto метка,

где параметр:

метка это строчка в пакетной программке, на которую производится переход. В пакетном файле она должна начинаться с двоеточия (:). Если строчка начинается с двоеточия, все присутствующие в ней команды обработаны не будут. Синтаксически она может включать Задание 4. КомандыIf, Goto, Call пробелы, но не может включать другие разделители, такие как точка с запятой либо символ равенства. При всем этом употребляются только 1-ые восемь символов метки (метки: hithere0, hithere01 и hithere02 воспринимаются интерпретатором команд как эквивалентные).

Если расширения командного интерпретатора разрешены и в команде Goto употребляется метка :Eof, управление будет Задание 4. КомандыIf, Goto, Call передано в конец текущего пакетного файла для выхода из него без предназначения метки. В синтаксис команды непременно должно быть включено двоеточие (:), другими словами Goto :Eof.

Дополнительная информация по данной команде, также примеры ее использования доступны в справке ОС Windows XP (Запуск | Справка и поддержка) в соответственном разделе. Справку также можно Задание 4. КомандыIf, Goto, Call получить, набрав в окне командной оболочки строчку Goto /? и нажав Enter для ввода.

Команда Call

Вызов 1-го пакетного файла из другого без окончания его выполнения осуществляется командой Call. Эта команда эквивалентна вызову процедуры из основного тела программки. Она воспринимает метки в качестве объекта вызова и употребляется исключительно в сценариях либо Задание 4. КомандыIf, Goto, Call пакетных файлах; при вызове из командной строчки команда Call игнорируется.

Синтаксис команды Call:

Call [[диск:][путь] имя_файла [пакетные_параметры]] [:метка [аргументы]],

где параметр:

[диск:][путь] имя_файла — задает имя и размещение пакетного файла.

пакетные_параметры — задает данные командной строчки, применяемые программкой пакетной обработки, включая характеристики командной строчки, названия Задание 4. КомандыIf, Goto, Call файлов, пакетные характеристики (%0-%9) либо переменные (к примеру, %baud%).

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

аргументы — задает данные командной строчки, которые передаются в новейшую программку пакетной обработки, начинающуюся Задание 4. КомандыIf, Goto, Call с :метки, включая характеристики командной строчки, названия файлов, пакетные характеристики либо переменные.

Стоит отметить, что при использовании команды Call знаки перенаправления ввода-вывода и «каналы» не допускаются. Не считая того, может быть реализована подстановка переменных на базе модификаторов. При всем этом разрешаются все варианты синтаксических конструкций, приведенных в Задание 4. КомандыIf, Goto, Call табл. 1и 2.

Дополнительная информация по данной команде, также примеры ее использования доступны в справке ОС Windows XP (Запуск | Справка и поддержка) в соответственном разделе. Справку также можно получить, набрав в окне командной оболочки строчку Call /? и нажав Enter для ввода.

Содержание задания

Видоизмените пакетный файл, приобретенный в прошлом задании таким макаром Задание 4. КомандыIf, Goto, Call, чтоб производились последующие условия:

1. Если не существует каталог d:\Temp\MyFont\, сделайте его хоть каким методом, изученным ранее. В неприятном случае выведите сообщение «Folderexists» (Каталог существует).

2. Если в каталоге d:\Temp\MyFont\ не существует файлов-шрифтов, скопируйте любые три одним из способов, изученных ранее, из системного каталога c:\Windows\Fonts Задание 4. КомандыIf, Goto, Call\. В неприятном случае выведите сообщение «Fontsexist» (Шрифты находятся).

3. Если в каталоге d:\Temp\MyFont\ существует файлы, удалите каталог вкупе с его содержимым, изученным ранее методом и выведите сообщение «Folderdeleted». В неприятном случае выведите сообщение «Folderisempty. Deletingissenseless» (Каталог пуст.Удаление глупо).

При выполнении задания используйте последующие аннотации:

o по Задание 4. КомандыIf, Goto, Call каждому из пт задания в командном файле наберите соответственный код из команд с необходимыми ключами,

o сохраните измененный пакетный файл, воспользовавшись командой Start и указав путь к пакетному файлу,

o запустите его на выполнение, нажав Enter для ввода,

o изучите приобретенный итог и придите к выводу о проделанной работе Задание 4. КомандыIf, Goto, Call,

o запишите полученную информацию в отчет, заполнив табл. 8.

Таблица 8. Результаты выполнения команды If


zadanie-53-zima-znakomstvo.html
zadanie-6-analiz-organizacii-predmetno-razvivayushej-sredi-v-odod.html
zadanie-6-formi-estestvennogo-otbora.html