МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ
КАФЕДРА ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНОЙ АППАРАТУРЫ
ОТЧЕТ
по лабораторной работе “Командные файлы”
Дисциплина “Системное ПО ЭВМ”
Выполнили студенты группы С-45.
Преподаватель проф. Зарудный Д. И.
Москва 1998
Оглавление
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.
Заключение
Выполненные задания позволяют сделать вывод о целесообразности применения командных файлов в случае необходимости использования часто повторяющихся действий. Командные файлы являются наиболее удачным решением для реализации простых алгоритмов, связанных с операциями над файлами. Однако для реализации сложных алгоритмов язык командных файлов может оказаться недостаточным.
|