ECHO Оглавления всех каталогов - в файле Dir.lst



ECHO Копирование текстовых файлов из текущего каталога

COPY *.TXT TEXT\*.* > NUL

ECHO Копирование завершено

DIR TEXT >>Dir.lst                                                                           (3)

ECHO Удаление текстовых файлов из текущего каталога

DEL TEXT\*.TXT > NUL

ECHO Удаление завершено

DIR TEXT >>Dir.lst

ECHO Просмотр оглавлений каталогов

TYPE Dir.lst

При выполнении этого файла оглавления каталога TEXT во всех его трех состояниях будут последовательно записаны в файлDir.lst, расположенный в текущем каталоге активного диска. Содержимое этого файла затем будет выведено на экран командой TYPE. Стандартные сообщения команд COPY и DEL выводиться не будут - вместо них на экран будет выводиться текст, указанный в параметрах команд ECHO.

Команда CALL<имя bat-файла> <параметры> вызывает другой (вложенный) пакетный файл, по завершению работы которого управление передается следующей строке родительского пакетного файла.

Пусть в текущем каталоге зарегистрированы два bat-файла : QQQ.bat и PPP.bat

Файл QQQ.bat

@ ECHO OFF

COPY %2   %1\%3

CALL PPP.bat    File_1  %3 %1

TYPE %3                                                                                     (4)

Файл PPP.bat

@ ECHO OFF

ECHO Исходные файлы %1 и %2

CD %3

COPY %1+%2 %2 > Nul

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 0 1, 2 3, 5 4 Успешное форматирование диска Неопределенная ошибка Форматирование прервано пользователем Фатальная ( неисправимая ) ошибка
XCOPY 0 1 2 4 Успешное копирование Не найдено файлов Копирование прервано пользователем Ошибка инициализации (не хватает памяти, не найден путь и др. )
DISKCOPY 0 1 2 3 4 Успешное копирование Ошибка ввода-вывода Копирование прервано пользователем Фатальная ошибка Ошибка инициализации ( не хватает памяти, неправильный синтаксис )
REPLACE 0 2 3 5 8 11 15 22 Успешное завершение Не найдены входные файлы Не найден входной или выходной каталог Доступ к файлу или каталогу запрещен Нехватка памяти Неправильный формат команды Неправильный диск Неправильная версия DOS
CHOICE 1 2 ... n Пользователем выбран 1-й пункт меню Пользователем выбран 2-й пункт меню                     ... Пользователем выбран n-й пункт меню

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

Format A:

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

GoTo Exit


Дата добавления: 2018-02-15; просмотров: 204;