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; просмотров: 376; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
