Командные файлы
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ<
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ<
КАФЕДРА ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНОЙ АППАРАТУРЫ<
FONT SIZE=2><
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
B>FONT FACE="Times New Roman" SIZE=7>ОТЧЕТ<
FONT SIZE=2><
FONT SIZE=6><
FONT FACE="Times New Roman" SIZE=6>по лабораторной работе Командные файлы<
Дисциплина Системное ПО ЭВМФ<
FONT SIZE=2><
I>FONT SIZE=6><
<
<
<
<
FONT FACE="Times New Roman" SIZE=5>Выполнили студенты группы С-45.<
FONT SIZE=5><
<
<
FONT FACE="Times New Roman" SIZE=5>Преподаватель проф. Зарудный Д. И.<
FONT SIZE=2><
B>FONT SIZE=6><
<
<
<
<
FONT FACE="Times New Roman" SIZE=6>Москва 1998<
FONT SIZE=2><
<
<
B>FONT FACE="Times New Roman" SIZE=6>Оглавление<
<
<
B>FONT SIZE=4><
-
FONT SIZE=5>
LI> FONT FACE="Times New Roman" SIZE=5>Введение<
LI> Рабочее задание<
LI> Краткие сведения о командных файлах<
FONT SIZE=5>LI> FONT FACE="Times New Roman" SIZE=5>Практическая часть<
LI>Тексты программ<
LI>Протокол работы программ<
LI> Заключение<
<
FONT SIZE=2><
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
B>FONT SIZE=6>1. FONT FACE="Times New Roman" SIZE=6>Введение<
<
FONT FACE="Arial" SIZE=5><
FONT FACE="Arial" SIZE=5>Командные файлы - средство FONT FACE="Arial" SIZE=5>MS-DOS,FONT FACE="Arial" SIZE=5> позволяющее автоматизировать часто выполняемые действия пользователя. Командные файлы могут выполнять довольно сложную последовательность действий. Основой командных файлов служат команды FONT FACE="Arial" SIZE=5>MS-DOS.<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
B>FONT FACE="Times New Roman" SIZE=6>2. Рабочее задание<
<
<
<
-
FONT FACE="Arial" SIZE=5>
LI>Создать командный файл FONT FACE="Arial" SIZE=5>BATCH1.BATFONT FACE="Arial" SIZE=5>, выполняющий действия:<
LI>Отключение режима отображения на экране выполняемой команды<
LI>Вывод на экран: "Копирование и даление файла"<
LI>Создание на диске FONT FACE="Arial" SIZE=5>A: FONT FACE="Arial" SIZE=5> каталога FONT FACE="Arial" SIZE=5>DIR1, FONT FACE="Arial" SIZE=5>и в нем создание каталога FONT FACE="Arial" SIZE=5>DIR2<
FONT FACE="Arial" SIZE=5>LI>Копирование файла с именем FONT FACE="Arial" SIZE=5>TEXT1.TXTFONT FACE="Arial" SIZE=5> из каталога FONT FACE="Arial" SIZE=5>C:ALPHABETTAGAMMA FONT FACE="Arial" SIZE=5>в файл с именем FONT FACE="Arial" SIZE=5>TEXTNEW.TXTFONT FACE="Arial" SIZE=5> в каталоге FONT FACE="Arial" SIZE=5>A:DIR1DIR2 <
FONT FACE="Arial" SIZE=5>LI>Удаление исходного файла<
LI>Вывод на экран: FONT FACE="Arial" SIZE=5>УFONT FACE="Arial" SIZE=5>Файл скопирован и даленFONT FACE="Arial" SIZE=5>Ф<
FONT FACE="Arial" SIZE=5>LI>Пауза до нажатия клавиши<
LI>Создать командный файл с именем FONT FACE="Arial" SIZE=5>SUMMA.BATFONT FACE="Arial" SIZE=5>, выполняющий действия:<
LI>Вывод на экран FONT FACE="Arial" SIZE=5>УFONT FACE="Arial" SIZE=5>Объединение и переименование файловFONT FACE="Arial" SIZE=5>Ф<
FONT FACE="Arial" SIZE=5>LI>Объединение содержимого файлов FONT FACE="Arial" SIZE=5>ANEW.PAS FONT FACE="Arial" SIZE=5>иFONT FACE="Arial" SIZE=5> BNEW.PASFONT FACE="Arial" SIZE=5>, находящихся в каталоге FONT FACE="Arial" SIZE=5>C:D1FONT FACE="Arial" SIZE=5>, в файл FONT FACE="Arial" SIZE=5>CNEW.PAS FONT FACE="Arial" SIZE=5>в каталоге FONT FACE="Arial" SIZE=5>C:D2<
FONT FACE="Arial" SIZE=5>LI>Вывод содержимого файла FONT FACE="Arial" SIZE=5>CNEW.PAS FONT FACE="Arial" SIZE=5>на экран<
LI>Ожидание нажатия клавиши<
LI>Переименование файлов FONT FACE="Arial" SIZE=5>ANEW.PAS FONT FACE="Arial" SIZE=5>и FONT FACE="Arial" SIZE=5>BNEW.PAS FONT FACE="Arial" SIZE=5>в FONT FACE="Arial" SIZE=5>AOLD.PAS FONT FACE="Arial" SIZE=5>иFONT FACE="Arial" SIZE=5> BOLD.PAS FONT FACE="Arial" SIZE=5>соответственно.<
LI>Вывод на экран: "Задание выполнено"<
LI>Создать командный файл с именем FONT FACE="Arial" SIZE=5>_EXIST.BATFONT FACE="Arial" SIZE=5>, выполняющий действия:<
LI>Вывод на экран Копирование файла в случае его отсутствия на дискете<
LI>В случае отсутствия файла FONT FACE="Arial" SIZE=5>SIMP.FOR FONT FACE="Arial" SIZE=5>на диске FONT FACE="Arial" SIZE=5>AFONT FACE="Arial" SIZE=5>: скопировать его туда из каталога FONT FACE="Arial" SIZE=5>C:FOR FONT FACE="Arial" SIZE=5>и вывести на экран: "Файл FONT FACE="Arial" SIZE=5>simp.for FONT FACE="Arial" SIZE=5>скопированFONT FACE="Arial" SIZE=5> FONT FACE="Arial" SIZE=5>на диск FONT FACE="Arial" SIZE=5>A:"<
FONT FACE="Arial" SIZE=5>LI>Если файл FONT FACE="Arial" SIZE=5>SIMP.FOR FONT FACE="Arial" SIZE=5>уже есть на диске, вывести на экран: "Файл FONT FACE="Arial" SIZE=5>simp.for FONT FACE="Arial" SIZE=5>уже есть на дискете"<
<
<
FONT FACE="Arial" SIZE=5>LI>Создать командный файл с именемFONT FACE="Arial" SIZE=5> BATCH4.BATFONT FACE="Arial" SIZE=5>, выполняющий различные действия в зависимости от переданного параметра в строке вызова:<
LI>Создание каталога FONT FACE="Arial" SIZE=5>A:MYDIR FONT FACE="Arial" SIZE=5>и копирование в него всех FONT FACE="Arial" SIZE=5>.com FONT FACE="Arial" SIZE=5>и FONT FACE="Arial" SIZE=5>.exe FONT FACE="Arial" SIZE=5>файлов с диска FONT FACE="Arial" SIZE=5>C:<
FONT FACE="Arial" SIZE=5>LI>Создание в каталоге FONT FACE="Arial" SIZE=5>A:MYDIR FONT FACE="Arial" SIZE=5>каталога FONT FACE="Arial" SIZE=5>NEWDIR FONT FACE="Arial" SIZE=5>и копирование в него всех FONT FACE="Arial" SIZE=5>.comFONT FACE="Arial" SIZE=5> файлов с диска FONT FACE="Arial" SIZE=5>C:<
FONT FACE="Arial" SIZE=5>LI>Вывод на экран содержимого каталога A:MYDIR<
LI>Удаление каталога FONT FACE="Arial" SIZE=5>A:MYDIRNEWDIR<
FONT FACE="Arial" SIZE=5>LI>Удаление каталога FONT FACE="Arial" SIZE=5>A:MYDIR<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
B>FONT FACE="Times New Roman" SIZE=6>3. Краткие сведения о командных файлах<
<
FONT SIZE=5><
FONT FACE="Arial" SIZE=5>Командный файл состоит из последовательности строк, в каждой из которых может находиться либо вызов программы, либо вспомогательные команды. Большинство строк командного файла обрабатываются FONT FACE="Arial" SIZE=5>DOSFONT FACE="Arial" SIZE=5> так же, как если бы они вводились пользователем в командной строке. Вспомогательные команды служат для правления ходом работы командного файла. Наиболее распространенные вспомогательные команды:<
B>FONT FACE="Arial" SIZE=5><
FONT FACE="Arial" SIZE=5>ЕСНО<
FONT FACE="Arial" SIZE=5><
FONT FACE="Arial" SIZE=5>При формате вызова B>FONT FACE="Arial" SIZE=5>ECHO OFF FONT FACE="Arial" SIZE=5>отменяет вывод строк командного файла на экран при выполнении. Команда B>FONT FACE="Arial" SIZE=5>ECHO ON FONT FACE="Arial" SIZE=5>возобновляет их вывод на экран. Большинство командных файлов начинаются со строкиB>FONT FACE="Arial" SIZE=5> @ECHO OFF. FONT FACE="Arial" SIZE=5>Символ "B>FONT FACE="Arial" SIZE=5>@FONT FACE="Arial" SIZE=5>" служит для отмены вывода на экран строки, следующей непосредственно за нимFONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=5>В остальных случаях команда B>ЕСНО выводит на экран текст, следующий за ней в строке.<
FONT FACE="Arial" SIZE=5><
B>GOTO<
<
FONT FACE="Arial" SIZE=5>Применяется для перехода к определенной строке командного файла. При выполнении команды B>FONT FACE="Arial" SIZE=5>GOTO I>LABEL FONT FACE="Arial" SIZE=5>происходит переход к строке, начинающейся с текста B>FONT FACE="Arial" SIZE=5> :I>LABEL.<
<
IF<
<
FONT FACE="Arial" SIZE=5>Служит для проверки словия во время выполнения командного файла.<
Формат команды: B>FONT FACE="Arial" SIZE=5>IF I>FONT FACE="Arial" SIZE=5>УСЛОВИЕ КОМАНДАFONT FACE="Arial" SIZE=5> .<
FONT FACE="Arial" SIZE=5>Команда будет выполнена в том случае, если словие будет истинно. Однако, допуст м формат B>FONT FACE="Arial" SIZE=5>IF NOT I>FONT FACE="Arial" SIZE=5>УСЛОВИЕ КОМАНДА. При этом команда выполнится, если словие ложно. В качестве команды часто используется B>FONT FACE="Arial" SIZE=5>GOTO.<
<
<
<
<
FONT FACE="Arial" SIZE=5>В качестве словия могут быть использованы выражения:<
B>FONT FACE="Arial" SIZE=5>EXIST I>FONT FACE="Arial" SIZE=5>ФАЙЛFONT FACE="Arial" SIZE=5> FONT FACE="Arial" SIZE=5>- истинно в том случае, если казанный файл существует.<
B>I>СТРОКА1 = = СТРОКА2 - истинно, если строки совпадают. Обычно в одну из строк входят I>параметры командного файлаFONT FACE="Arial" SIZE=5>.<
<
B>PAUSE<
<
FONT FACE="Arial" SIZE=5>Приостанавливает выполнение командного файла до нажатия клавиши FONT FACE="Arial" SIZE=5>any. FONT FACE="Arial" SIZE=5>Если нажать клавиши FONT FACE="Arial" SIZE=5>Ctrl+Break, FONT FACE="Arial" SIZE=5>выполнение командного файла будет прервано.<
FONT FACE="Arial" SIZE=5><
B>REM<
<
FONT FACE="Arial" SIZE=5>Строки, начинающиеся с B>FONT FACE="Arial" SIZE=5>REM, FONT FACE="Arial" SIZE=5>при выполнении командного файла игнорируются. В них можно записывать комментарии.<
FONT FACE="Arial" SIZE=5><
B>FOR<
<
FONT FACE="Arial" SIZE=5>Формат команды: B>FONT FACE="Arial" SIZE=5>FOR %%x IN (I>FONT FACE="Arial" SIZE=5>СПИСОКFONT FACE="Arial" SIZE=5>) DO I>FONT FACE="Arial" SIZE=5>КОМАНДА<
При выполнении I>КОМАНДА будет выполнена для каждого файла из списка. Эту команду можно использовать, если программа, которую нужно вызвать, не поддерживает "джокеров" - символов "*" и "?" в именах файлов. <
ПримерB>FONT FACE="Arial" SIZE=5>: FOR %%A IN (*.TXT) DO MORE<%%A<
FONT FACE="Arial" SIZE=5>Эту команду можно использовать и в командной строке, но при этом вместо B>%%х нужно писать B>%хFONT FACE="Arial" SIZE=5>.<
<
FONT FACE="Arial" SIZE=5>Параметры командного файла - слова, идущие при его вызове в командной строке вслед за именем самого файла. <
Пример B>FONT FACE="Arial" SIZE=5>- compare.bat example.txt. B>example2.txt<
FONT FACE="Arial" SIZE=5>В командном файле параметры казываются с помощью выражений B>%х, где х - цифра от 1 до 9. B>FONT FACE="Arial" SIZE=5>%0FONT FACE="Arial" SIZE=5> означает имя самого командного файла. Так, если в приведенном выше примере файл B>FONT FACE="Arial" SIZE=5>compare.bat FONT FACE="Arial" SIZE=5>содержит строку B>FONT FACE="Arial" SIZE=5>type %1, FONT FACE="Arial" SIZE=5>то во время выполнения она заменится на FONT FACE="Arial" SIZE=5>type B>example.txt.<
<
<
<
FONT FACE="Arial" SIZE=5>Некоторые команды MS-DOS, необходимые в написании командных файлов:<
Смена текущего каталога осуществляется командой <
B>FONT FACE="Arial" SIZE=5>CD I>FONT FACE="Arial" SIZE=5>имя_каталога<
Создание каталога осуществляется командой<
B>FONT FACE="Arial" SIZE=5>MD I>FONT FACE="Arial" SIZE=5>имя_каталогаFONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=5>Копирование файла - командой <
B>FONT FACE="Arial" SIZE=5>COPY I>FONT FACE="Arial" SIZE=5>имя_файла1 имя_файла2FONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=5>Удаление файла - командой <
B>FONT FACE="Arial" SIZE=5>DEL I>FONT FACE="Arial" SIZE=5>имя_файлаFONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=5>Удаление каталога - командой <
B>FONT FACE="Arial" SIZE=5>DELTREE I>FONT FACE="Arial" SIZE=5>имя_каталога<
Файлы объединяются командой <
B>FONT FACE="Arial" SIZE=5>COPY I>FONT FACE="Arial" SIZE=5>файл1FONT FACE="Arial" SIZE=5> + I>FONT FACE="Arial" SIZE=5>файл2 файл3 FONT FACE="Arial" SIZE=5> <
FONT FACE="Arial" SIZE=5>после выполнения которой I>файл3 содержит данные, находившиеся в файлах I>файл1 и I>файл2FONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=4><
FONT SIZE=5><
<
<
DIR> DIR> B>FONT FACE="Times New Roman" SIZE=6>4. Практическая часть<
FONT FACE="Times New Roman" SIZE=6>4.1 Тексты программ<
FONT FACE="Courier New" SIZE=4><
-
FONT FACE="Courier New" SIZE=4>LI>Файл FONT FACE="Courier New" SIZE=4>BATCH1.BAT
FONT FACE="Courier New" SIZE=2>
<
FONT FACE="Courier New">@echo offecho Копирование и даление файла a:mkdir a:dir1mkdir a:dir1dir2copy c:alphaetagammaFONT FACE="Courier New"> ext1.txt a:dir1dir2 extnew.txt<
del c:alphaetagamma ext1.txt<
FONT FACE="Courier New">echo Файл скопирован и дален<
FONT FACE="Courier New">pause<
FONT FACE="Courier New" SIZE=2><
B>FONT FACE="Courier New" SIZE=4>LI>Файл FONT FACE="Courier New" SIZE=4>SUMMA.BAT<
FONT FACE="Courier New">@echo offecho Объединение и переименование файлов copy c:d1anew.pas + c:d1new.pas c:d2cnew.pastype c:d2cnew.paspause<
FONT FACE="Courier New">rename c:d1anew.pas aold.pas<
rename c:d1new.pas bold.pas<
FONT FACE="Courier New">echo Задание выполнено<
FONT FACE="Courier New" SIZE=2><
-
B>FONT FACE="Courier New" SIZE=4>LI>Файл FONT FACE="Courier New" SIZE=4>_EXIST.BAT
FONT FACE="Courier New" SIZE=2>
<
FONT FACE="Courier New">@echo offecho Копирование файла в случае его отсутствия на дискете if not exist a:simp.for goto met1echo Файл simp.for же есть на дискете <
FONT FACE="Courier New">goto met2<
:met1<
copy c:forsimp.for a:simp.for<
FONT FACE="Courier New">echo Файл simp.for скопирован на диск A:<
FONT FACE="Courier New">:met2<
FONT FACE="Courier New" SIZE=2><
B>FONT FACE="Courier New" SIZE=4><
FONT FACE="Courier New" SIZE=4>LI>Файл BATCH4.BAT FONT FACE="Courier New" SIZE=2><
FONT FACE="Courier New">@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 ewdir<
copy c:*.com a:mydir ewdir<
goto qend<
:m3<
dir a:mydir<
goto qend<
:m4<
deltree a:mydir ewdir<
goto qend<
:met5<
deltree a:mydir<
:qend<
FONT FACE="Courier New" SIZE=2><
<
<
B>FONT SIZE=6><
<
<
<
<
<
<
<
<
-
FONT FACE="Times New Roman" SIZE=6>
LI>Протокол работы программ<
<
-
FONT FACE="Arial" SIZE=4>
LI>Файл FONT FACE="Arial" SIZE=4>BATCH1.BAT<
FONT FACE="Courier New"><
FONT FACE="Courier New">Копирование и даление файла<
1 файл(а,ов) скопировано<
Файл скопирован и дален<
Нажмите любую клавишу...<
FONT FACE="Courier New"><
FONT FACE="Arial" SIZE=4>LI>Файл FONT FACE="Arial" SIZE=4>SUMMA.BAT<
<
FONT FACE="Courier New">Объединение и переименование файлов<
FONT FACE="Courier New">c:d1anew.pas<
c:d1new.pas<
FONT FACE="Courier New">1 файл(а,ов) скопировано<
FONT FACE="Courier New">{ FONT FACE="Courier New">Содержимое файла FONT FACE="Courier New">anew.pas }<
{FONT FACE="Courier New"> Содержимое файла FONT FACE="Courier New">bnew.pas }<
FONT FACE="Courier New">Нажмите любую клавишу...Задание выполнено<
FONT FACE="Courier New"><
FONT FACE="Arial" SIZE=4>LI>Файл FONT FACE="Arial" SIZE=4>_EXIST.BAT<
<
FONT FACE="Arial">) файл отсутствует на дискете:FONT FACE="Courier New">Копирование файла в случае его отсутствия на дискете<
1 файл(а,ов) скопировано<
Файл FONT FACE="Courier New">simp.for FONT FACE="Courier New">скопирован на диск FONT FACE="Courier New">A:<
<
FONT FACE="Arial">б) файл есть на дискете:FONT FACE="Courier New">Копирование файла в случае его отсутствия на дискете<
Файл FONT FACE="Courier New">simp.for FONT FACE="Courier New">уже есть на дискете<
FONT FACE="Arial" SIZE=4>4. FONT FACE="Arial" SIZE=4>Файл FONT FACE="Arial" SIZE=4>BATCH4.BAT<
<
FONT FACE="Arial">) запуск с параметром 1<
FONT FACE="Arial"><
FONT FACE="Courier New">{ FONT FACE="Courier New">список из 10.FONT FACE="Courier New">com FONT FACE="Courier New">файловFONT FACE="Courier New"> }<
FONT FACE="Courier New">10 файл(а,ов) скопировано<
FONT FACE="Courier New">{ FONT FACE="Courier New">список из 8 FONT FACE="Courier New">.exe FONT FACE="Courier New">файлов FONT FACE="Courier New">}<
8 FONT FACE="Courier New">файл(а,ов) скопировано<
FONT FACE="Courier New"><
FONT FACE="Arial">б) запуск с параметром 2<
FONT FACE="Courier New"><
{ FONT FACE="Courier New">список из 10 FONT FACE="Courier New">.com FONT FACE="Courier New">файловFONT FACE="Courier New"> }<
10 FONT FACE="Courier New">файл(а,ов) скопировано<
FONT FACE="Courier New"><
FONT FACE="Arial">в) запуск с параметром 3<
FONT FACE="Arial"><
FONT FACE="Courier New">{ FONT FACE="Courier New">вывод содержимого каталога FONT FACE="Courier New">A:MYDIR }<
FONT FACE="Arial"><
<
FONT FACE="Arial">г) запуск с параметром 4<
FONT FACE="Arial"><
FONT FACE="Courier New">Удалить каталог FONT FACE="Courier New">Уa:mydir ewdirФ FONT FACE="Courier New">вместе со всеми подкаталогами? [YFONT FACE="Courier New">(FONT FACE="Courier New">даFONT FACE="Courier New">)/N(FONT FACE="Courier New">нетFONT FACE="Courier New">)] y<
FONT FACE="Courier New">Удаление FONT FACE="Courier New">a:mydir ewdir...<
FONT FACE="Arial"><
FONT FACE="Arial">д) запуск с параметром 5<
FONT FACE="Arial"><
FONT FACE="Courier New">Удалить каталог FONT FACE="Courier New">Уa:mydirФ FONT FACE="Courier New">вместе со всеми подкаталогами? [YFONT FACE="Courier New">(FONT FACE="Courier New">даFONT FACE="Courier New">)/N(FONT FACE="Courier New">нетFONT FACE="Courier New">)] y<
FONT FACE="Courier New">Удаление FONT FACE="Courier New">a:mydir...<
<
FONT FACE="Arial"><
<
<
<
<
<
-
B>FONT FACE="Times New Roman" SIZE=6>
LI> Заключение<
<
FONT FACE="Arial" SIZE=5>Выполненные задания позволяют сделать вывод о целесообразности применения командных файлов в случае необходимости использования часто повторяющихся действий. Командные файлы являются наиболее дачным решением для реализации простых алгоритмов, связанных с операциями над файлами. Однако для реализации сложных алгоритмов язык командных файлов может оказаться недостаточнымFONT FACE="Arial" SIZE=5>.<
FONT FACE="Arial" SIZE=4><
<