Смекни!
smekni.com

Командные файлы

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ

КАФЕДРА ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНОЙ АППАРАТУРЫ

ОТЧЕТ

по лабораторной работе “Командные файлы”

Дисциплина “Системное ПО ЭВМ”

Выполнили студенты группы С-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:&bsol;dir1mkdir a:&bsol;dir1&bsol;dir2copy c:&bsol;alpha&bsol;beta&bsol;gamma&bsol;text1.txt a:&bsol;dir1&bsol;dir2&bsol;textnew.txt

del c:&bsol;alpha&bsol;beta&bsol;gamma&bsol;text1.txt

echo Файл скопирован и удален

pause

2.Файл SUMMA.BAT

@echo offecho Объединение и переименование файлов copy c:&bsol;d1&bsol;anew.pas + c:&bsol;d1&bsol;bnew.pas c:&bsol;d2&bsol;cnew.pastype c:&bsol;d2&bsol;cnew.paspause

rename c:&bsol;d1&bsol;anew.pas aold.pas

rename c:&bsol;d1&bsol;bnew.pas bold.pas

echo Задание выполнено

3.Файл _EXIST.BAT

@echo offecho Копирование файла в случае его отсутствия на дискете if not exist a:&bsol;simp.for goto met1echo Файл simp.for уже есть на дискете

goto met2

:met1

copy c:&bsol;for&bsol;simp.for a:&bsol;simp.for

echo Файл simp.for скопирован на диск A:

:met2

4.Файл BATCH4.BAT

@echo offgoto m%1goto qend:m1a:mkdir a:&bsol;mydircopy c:&bsol;*.com a:&bsol;mydircopy c:&bsol;*.exe a:&bsol;mydir

goto qend

:m2

a:

cd a:&bsol;mydir

mkdir a:&bsol;mydir&bsol;newdir

copy c:&bsol;*.com a:&bsol;mydir&bsol;newdir

goto qend

:m3

dir a:&bsol;mydir

goto qend

:m4

deltree a:&bsol;mydir&bsol;newdir

goto qend

:met5

deltree a:&bsol;mydir

:qend

2.Протокол работы программ

1. Файл BATCH1.BAT

Копирование и удаление файла

1 файл(а,ов) скопировано

Файл скопирован и удален

Нажмите любую клавишу . . .

2. Файл SUMMA.BAT

Объединение и переименование файлов

c:&bsol;d1&bsol;anew.pas

c:&bsol;d1&bsol;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:&bsol;MYDIR }

г) запуск с параметром 4

Удалить каталог “a:&bsol;mydir&bsol;newdir” вместе со всеми подкаталогами? [Y(да)/N(нет)] y

Удаление a:&bsol;mydir&bsol;newdir...

д) запуск с параметром 5

Удалить каталог “a:&bsol;mydir” вместе со всеми подкаталогами? [Y(да)/N(нет)] y

Удаление a:&bsol;mydir...

3.Заключение

Выполненные задания позволяют сделать вывод о целесообразности применения командных файлов в случае необходимости использования часто повторяющихся действий. Командные файлы являются наиболее удачным решением для реализации простых алгоритмов, связанных с операциями над файлами. Однако для реализации сложных алгоритмов язык командных файлов может оказаться недостаточным.