Командные файлы
 
Оглавление
1. Введение
2. Рабочее задание
3. Краткие сведения о командных файлах
4. Практическая часть
1. Тексты программ
2. Протокол работы программ
5. Заключение
 
1. Введение
Командные файлы - средство MS-DOS, позволяющее автоматизировать часто выполняемые действия пользователя. Командные файлы могут выполнять довольно сложную последовательность действий. Основой командных файлов служат команды MS-DOS. 
2. Рабочее задание
1. Создать командный файл BATCH1. BAT, выполняющий действия: 1. Отключение режима отображения на экране выполняемой команды 2. Вывод на экран: "Копирование и удаление файла" 3. Создание на диске A: каталога DIR1, и в нем создание каталога DIR2 4. Копирование файла с именем TEXT1. TXT из каталога C: \ALPHA\BETTA\GAMMA в файл с именем TEXTNEW. TXT в каталоге A: \DIR1\DIR2 5. Удаление исходного файла 6. Вывод на экран: “Файл скопирован и удален” 7. Пауза до нажатия клавиши 2. Создать командный файл с именем SUMMA. BAT, выполняющий действия: 1. Вывод на экран “Объединение и переименование файлов” 2. Объединение содержимого файлов ANEW. PAS и BNEW. PAS, находящихся в каталоге C: \D1, в файл CNEW. PAS в каталоге C: \D2 3. Вывод содержимого файла CNEW. PAS на экран 4. Ожидание нажатия клавиши 5. Переименование файлов ANEW. PAS и BNEW. PAS в AOLD. PAS и BOLD. PAS соответственно. 
6. Вывод на экран: "Задание выполнено" 3. Создать командный файл с именем _EXIST. BAT, выполняющий действия: 1. Вывод на экран “Копирование файла в случае его отсутствия на дискете” 2. В случае отсутствия файла SIMP. FOR на диске A: скопировать его туда из каталога C: \FOR и вывести на экран: "Файл simp. for скопирован на диск A: " 3. Если файл SIMP. FOR уже есть на диске, вывести на экран: "Файл simp. for уже есть на дискете" 4. Создать командный файл с именем BATCH4. BAT, выполняющий различные действия в зависимости от переданного параметра в строке вызова: 1. Создание каталога A: \MYDIR и копирование в него всех. com и. exe файлов с диска C: 2. Создание в каталоге A: \MYDIR каталога \NEWDIR и копирование в него всех. com файлов с диска C: 3. Вывод на экран содержимого каталога A: \MYDIR 4. Удаление каталога A: \MYDIR\NEWDIR 5. Удаление каталога A: \MYDIR 3. Краткие сведения о командных файлах Командный файл состоит из последовательности строк, в каждой из которых может находиться либо вызов программы, либо вспомогательные команды. Большинство строк командного файла обрабатываются DOS так же, как если бы они вводились пользователем в командной строке. Вспомогательные команды служат для управления ходом работы командного файла. Наиболее распространенные вспомогательные команды: ЕСНО При формате вызова ECHO OFF отменяет вывод строк командного файла на экран при выполнении. Команда ECHO ON возобновляет их вывод на экран. Большинство командных файлов начинаются со строки @ECHO OFF. Символ "@" служит для отмены вывода на экран строки, следующей непосредственно за ним. 
В остальных случаях команда ЕСНО выводит на экран текст, следующий за ней в строке. 
GOTO Применяется для перехода к определенной строке командного файла. При выполнении команды GOTO LABEL происходит переход к строке, начинающейся с текста: LABEL. 
IF Служит для проверки условия во время выполнения командного файла. 
Формат команды: IF УСЛОВИЕ КОМАНДА. 
Команда будет выполнена в том случае, если условие будет истинно. Однако, допустим формат IF NOT УСЛОВИЕ КОМАНДА. При этом команда выполнится, если условие ложно. В качестве команды часто используется GOTO. 
В качестве условия могут быть использованы выражения: EXIST ФАЙЛ - истинно в том случае, если указанный файл существует. 
СТРОКА1 = = СТРОКА2 истинно, если строки совпадают. Обычно в одну из строк входят параметры командного файла. 
PAUSE Приостанавливает выполнение командного файла до нажатия клавиши any. Если нажать клавиши Ctrl+Break, выполнение командного файла будет прервано. 
REM Строки, начинающиеся с REM, при выполнении командного файла игнорируются. В них можно записывать комментарии. 
FOR Формат команды: FOR %%x IN (СПИСОК) DO КОМАНДА При выполнении КОМАНДА будет выполнена для каждого файла из списка. Эту команду можно использовать, если программа, которую нужно вызвать, не поддерживает "джокеров" - символов "*" и "? " в именах файлов. 
Пример: FOR %%A IN (*. TXT) DO MORE<%%A Эту команду можно использовать и в командной строке, но при этом вместо %%х нужно писать %х. 
Параметры командного файла - слова, идущие при его вызове в командной строке вслед за именем самого файла. 
Пример - compare. bat example. txt. example2. txt В командном файле параметры указываются с помощью выражений %х, где х - цифра от 1 до 9. %0 означает имя самого командного файла. Так, если в приведенном выше примере файл compare. bat содержит строку type %1, то во время выполнения она заменится на type example. txt. 
Некоторые команды MS-DOS, необходимые в написании командных файлов: Смена текущего каталога осуществляется командой CD имя_каталога Создание каталога осуществляется командой MD имя_каталога. 
Копирование файла - командой COPY имя_файла1 имя_файла2. 
Удаление файла - командой DEL имя_файла. 
Удаление каталога – командой DELTREE имя_каталога Файлы объединяются командой COPY файл1 + файл2 файл3 после выполнения которой файл3 содержит данные, находившиеся в файлах файл1 и файл2. 
4. Практическая часть 4.1 Тексты программ 1. Файл BATCH1. BAT @echo offecho Копирование и удаление файла a: mkdir a: \dir1mkdir a: \dir1\dir2copy c: \alpha\beta\gamma\text1. txt a: \dir1\dir2\textnew. txt del c: \alpha\beta\gamma\text1. txt echo Файл скопирован и удален pause 2. Файл SUMMA. BAT @echo offecho Объединение и переименование файлов copy c: \d1\anew. pas + c: \d1\bnew. pas c: \d2\cnew. pastype c: \d2\cnew. paspause rename c: \d1\anew. pas aold. pas rename c: \d1\bnew. pas bold. pas echo Задание выполнено 3. Файл _EXIST. BAT @echo offecho Копирование файла в случае его отсутствия на дискете if not exist a: \simp. for goto met1echo Файл simp. for уже есть на дискете goto met2: met1 copy c: \for\simp. for a: \simp. for echo Файл simp. for скопирован на диск A:: met2 4. Файл BATCH4. BAT @echo offgoto m%1goto qend: m1a: mkdir a: \mydircopy c: \*. com a: \mydircopy c: \*. exe a: \mydir goto qend: m2 a: cd a: \mydir mkdir a: \mydir\newdir copy c: \*. com a: \mydir\newdir goto qend: m3 dir a: \mydir goto qend: m4 deltree a: \mydir\newdir goto qend: met5 deltree a: \mydir: qend 2. Протокол работы программ 1. Файл BATCH1. BAT Копирование и удаление файла 1 файл(а, ов) скопировано Файл скопирован и удален Нажмите любую клавишу... 
2. Файл SUMMA. BAT Объединение и переименование файлов c: \d1\anew. pas c: \d1\bnew. pas 1 файл(а, ов) скопировано { Содержимое файла anew. pas } { Содержимое файла bnew. pas } Нажмите любую клавишу... Задание выполнено 3. Файл _EXIST. BAT а) файл отсутствует на дискете: Копирование файла в случае его отсутствия на дискете 1 файл(а, ов) скопировано Файл simp. for скопирован на диск A: б) файл есть на дискете: Копирование файла в случае его отсутствия на дискете Файл simp. for уже есть на дискете 4. Файл BATCH4. BAT а) запуск с параметром 1 { список из 10. com файлов } 10 файл(а, ов) скопировано { список из 8. exe файлов } 8 файл(а, ов) скопировано б) запуск с параметром 2 { список из 10. com файлов } 10 файл(а, ов) скопировано в) запуск с параметром 3 { вывод содержимого каталога A: \MYDIR } г) запуск с параметром 4 Удалить каталог “a: \mydir\newdir” вместе со всеми подкаталогами? [Y(да) /N(нет) ] y Удаление a: \mydir\newdir... 
д) запуск с параметром 5 Удалить каталог “a: \mydir” вместе со всеми подкаталогами? [Y(да) /N(нет) ] y Удаление a: \mydir... 
3. Заключение
Выполненные задания позволяют сделать вывод о целесообразности применения командных файлов в случае необходимости использования часто повторяющихся действий. Командные файлы являются наиболее удачным решением для реализации простых алгоритмов, связанных с операциями над файлами. Однако для реализации сложных алгоритмов язык командных файлов может оказаться недостаточным.