МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ
КАФЕДРА ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНОЙ АППАРАТУРЫ
ОТЧЕТ
по лабораторной работе “Командные файлы”
Дисциплина “Системное ПО ЭВМ”
Выполнили студенты группы С-45.
Преподаватель проф. Зарудный Д. И.
Москва 1998
Оглавление
Введение
Рабочее задание
Краткие сведения о командных файлах
Практическая часть
Тексты программ
Протокол работы программ
Заключение
1. Введение
Командные файлы — средство MS-DOS,позволяющее автоматизировать часто выполняемые действия пользователя. Командные файлы могут выполнять довольно сложную последовательность действий. Основой командных файлов служат команды MS-DOS.
2. Рабочее задание
Создать командный файл BATCH1.BAT, выполняющий действия:
Отключение режима отображения на экране выполняемой команды
Вывод на экран: «Копирование и удаление файла»
Создание на диске A: каталога DIR1, и в нем создание каталога DIR2
Копирование файла с именем TEXT1.TXTиз каталога C:ALPHABETTAGAMMA в файл с именем TEXTNEW.TXTв каталоге A:DIR1DIR2
Удаление исходного файла
Вывод на экран: “Файл скопирован и удален”
Пауза до нажатия клавиши
Создать командный файл с именем SUMMA.BAT, выполняющий действия:
Вывод на экран “Объединение и переименование файлов”
Объединение содержимого файлов ANEW.PAS иBNEW.PAS, находящихся в каталоге C:D1, в файл CNEW.PAS в каталоге C:D2
Вывод содержимого файла CNEW.PAS на экран
Ожидание нажатия клавиши
Переименование файлов ANEW.PAS и BNEW.PAS в AOLD.PAS иBOLD.PAS соответственно.
Вывод на экран: «Задание выполнено»
Создать командный файл с именем _EXIST.BAT, выполняющий действия:
Вывод на экран “Копирование файла в случае его отсутствия на дискете”
В случае отсутствия файла SIMP.FOR на диске A: скопировать его туда из каталога C:FOR и вывести на экран: «Файл simp.for скопированна диск A:»
Если файл SIMP.FOR уже есть на диске, вывести на экран: «Файл simp.for уже есть на дискете»
Создать командный файл с именемBATCH4.BAT, выполняющий различные действия в зависимости от переданного параметра в строке вызова:
Создание каталога A:MYDIR и копирование в него всех .com и .exe файлов с диска C:
Создание в каталоге A:MYDIR каталога NEWDIR и копирование в него всех .comфайлов с диска C:
Вывод на экран содержимого каталога A:MYDIR
Удаление каталога A:MYDIRNEWDIR
Удаление каталога 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
Эту команду можно использовать и в командной строке, но при этом вместо %%х нужно писать %х.
Параметры командного файла — слова, идущие при его вызове в командной строке вслед за именем самого файла.
Пример — 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 Тексты программ
Файл BATCH1.BAT
@echo offecho Копирование и удаление файла a:mkdir a:dir1mkdir a:dir1dir2copy c:alphaetagammaext1.txt a:dir1dir2 extnew.txt
del c:alphaetagamma ext1.txt
echo Файл скопирован и удален
pause
Файл SUMMA.BAT
@echo offecho Объединение и переименование файлов copy c:d1anew.pas + c:d1new.pas c:d2cnew.pastype c:d2cnew.paspause
rename c:d1anew.pas aold.pas
rename c:d1new.pas bold.pas
echo Задание выполнено
Файл _EXIST.BAT
@echo offecho Копирование файла в случае его отсутствия на дискете if not exist a:simp.for goto met1echo Файл simp.for уже есть на дискете
goto met2
:met1
copy c:forsimp.for a:simp.for
echo Файл simp.for скопирован на диск A:
:met2
Файл 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:mydirewdir
copy c:*.com a:mydirewdir
goto qend
:m3
dir a:mydir
goto qend
:m4
deltree a:mydirewdir
goto qend
:met5
deltree a:mydir
:qend
Протокол работы программ
Файл BATCH1.BAT
Копирование и удаление файла
1 файл(а, ов) скопировано
Файл скопирован и удален
Нажмите любую клавишу.. .
Файл SUMMA.BAT
Объединение и переименование файлов
c:d1anew.pas
c:d1new.pas1 файл(а, ов) скопировано
{ Содержимое файла anew.pas }
{Содержимое файла bnew.pas }
Нажмите любую клавишу…Задание выполнено
Файл _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:mydirewdir” вместе со всеми подкаталогами? [Y(да)/N(нет)] y
Удаление a:mydirewdir…
д) запуск с параметром 5
Удалить каталог “a:mydir” вместе со всеми подкаталогами? [Y(да)/N(нет)] y
Удаление a:mydir…
Заключение
Выполненные задания позволяют сделать вывод о целесообразности применения командных файлов в случае необходимости использования часто повторяющихся действий. Командные файлы являются наиболее удачным решением для реализации простых алгоритмов, связанных с операциями над файлами. Однако для реализации сложных алгоритмов язык командных файлов может оказаться недостаточным.