ECHO Слияние файлов завершено

При запуске файла QQQ командой "QQQ.bat Dir1 Name1 Name2"его переменные %1, %2 и %3 получат значения соответственно Dir1, Name1 и Name2.При выполнении второй команды этого файла в подкаталог Dir1 будет скопирован файл Name1 под именемName2. Команда CALL запустит на выполнение файл PPP.bat, передав ему в качестве первого параметра текстовую константу File_1,в качестве второго параметра – значение переменной %3 файла QQQ.bat (то есть Name2), а в качестве третьего параметра – значение первого параметра файла QQQ.bat (то есть Dir1). В результате переменные %1, %2 и %3 файла PPP.batполучат значения соответственно File_1, Name2 и Dir1, и два соответствующих файла будут соединены и сохранены в файле Name2, зарегистрированном в каталогеDir1.После завершения работы файла PPP.bat будет выполнена команда TYPE файла QQQ.bat, которая выведет на экран содержимое файла Name2.

Можно запустить bat-файл из другого bat-файла и без команды CALL (например, вместо строки CALL PPP.bat File_1 %3 %1записать строкуPPP.bat File_1 %3 %1). Однако, в этом случае после завершения работы вложенного bat-файла PPP.batне произойдет возврата к следующей строке исходного bat-файла QQQ.bat.

Команда GOTO<метка> - безусловный переход к строке с указанной меткой, то есть строке, которая начинается с двоеточия, после которого следует текст <метка>(не более 8 символов).

Команда IF<условие><команда>

или IF NOT<условие><команда>

Заданная <команда> будет выполнена в том случае, если <условие> истинно (или ложно). После завершения выполнения <команды> выполняется следующая строка командного файла. Если заданное <условие> ложно (или истинно), заданная <команда>не выполняется, и сразу выполняется следующая строка командного файла.

Параметр <условие> может иметь одну из следующих форм:

· EXIST <спецификация файла> - истинно, если файл существует;

· NOT EXIST <спецификация файла> - истинно, если такого файла нет;

· <строка1>==<строка2> - истинно при полном совпадении заданных символьных строк. Если в этом условии вместо строк используются переменные (%0 ... %9), то при выполнении команды на их место будут подставлены значения соответствующих параметров. Например : %n==<строка>- проверка совпадения n-го параметра с заданной текстовой строкой; %n==%m- проверка совпадения значений двух параметров. При сравнении параметров следует учитывать, что переменные, соответствующие отсутствующим параметрам, будут представлены символом "пробел", что может привести к ошибкам при выполнении bat-файлов, так как "пустые" параметры интерпретатором не обрабатываются. Для исключения таких ошибок при выполнении операций сравнения значений переменных с "пустыми" параметрами можно использовать при записи условий два одинаковых дополнительных символа (например, знак "минус") в левой и правой частях условия сравнения: например, условие -%n==- будет истинным, если n -й параметр пуст.

Errorlevel <значение>.Процедуры выполнения некоторых внутренних и внешних команд, завершая свою работу, формируют определенное числовое значение специальной системной переменной ERRORLEVEL (в переводе - "уровень ошибки"), называемой кодом завершения программы. Значение переменной ERRORLEVEL, сформированное последней из выполняемых программ, хранится в памяти ПК и может быть использовано другими программами, а также командой IF <условие> <команда>в составе параметра <условие>. Например, условие "ERRORLEVEL 5" будет "истинным", если переменная ERRORLEVEL получила значение, равное или большее 5.

Примеры кодов завершения некоторых программ, реализующих внешние команды, приведены в таблице 1.3.

Таблица 1.3 - Коды завершения программ

Команда Errorlevel Условие завершения программы
FORMAT 1, 2 3, 5 Успешное форматирование диска Неопределенная ошибка Форматирование прервано пользователем Фатальная ( неисправимая ) ошибка
XCOPY Успешное копирование Не найдено файлов Копирование прервано пользователем Ошибка инициализации (не хватает памяти, не найден путь и др. )
DISKCOPY Успешное копирование Ошибка ввода-вывода Копирование прервано пользователем Фатальная ошибка Ошибка инициализации ( не хватает памяти, неправильный синтаксис )
REPLACE Успешное завершение Не найдены входные файлы Не найден входной или выходной каталог Доступ к файлу или каталогу запрещен Нехватка памяти Неправильный формат команды Неправильный диск Неправильная версия DOS
CHOICE ... n Пользователем выбран 1-й пункт меню Пользователем выбран 2-й пункт меню ... Пользователем выбран n-й пункт меню

В приведенном ниже фрагменте текста bat-файла команда IF анализирует числовое значение кода завершения программы форматирования диска и выдает соответствующее сообщение.

Format A:

If Errorlevel 4 Echo Можете смело выбрасывать свою дискету !

GoTo Exit

Наши рекомендации