Работу выполнять только средствами DOS.



Практическая работа № 9 Пакетные файлы

Цель работы: научиться создавать пакетные файлы

В любой операционной системе (ОС) – в том числе и в MS-DOS – имеется командный язык, который позволяет выполнять те или иные действия. Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляется командным процессором ОС.

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

Основные команды MS-DOS

Для выдачи справочного материала по командам MS-DOS ввести: команда/? В описании команд в скобки [] заключены те элементы команды, которые можно не указывать. Стандартными внешними устройствами являются: CON – клавиатура и дисплей; PRN – принтер, NUL – пустое устройство. Символом d:  обозначен любой дисковый носитель.

I. Команды работы с каталогами

1) DIR – просмотр содержимого каталога:

DIR [d:][путь\][имя_файла][/P][/W][/A][/O][/S][/B][/L].

Параметры:

/P – постраничный вывод на экран;

/W – вывод записей в усеченном формате (только имена файлов) в 5 колонок;

/A:атрибуты – индикация содержимого каталогов с атрибутами (H, A, S, R, D или –H, –A,…);

/O:критерий – задание порядка вывода имен файлов (по алфавиту N, времени создания T, расширению E, размеру S, дате D, или –N, –T, … – означает обратный порядок);

/S – вывод имен файлов в каталоге и подкаталогах;

/B – вывод только имен файлов в столбик;

/L – вывод информации маленькими буквами.

Примеры:

DIR / P – постраничный вывод на экран содержимого текущего каталога;

DIR *. txt –вывод на экран имен файлов с расширением txt из текущего каталога.

2) MD (MKDIR) – создание подкаталога в текущем или пассивном каталоге:

MD [d:][путь\]имя_подкаталога.

Пример:

MD H :\ WORK \ TEST – создание в пассивном каталоге H :\ WORK подкаталога TEST.

3) RD (RMDIR) – уничтожение каталога (пустого):

RD [d:][путь\]имя_подкаталога.

Пример:

RD TEST – уничтожение подкаталога TEST в текущем каталоге.

4) CD – переход в другой каталог:

CD [d:][путь\][имя_подкаталога].

Примеры:

CD .. – переход в родительский каталог;        CD \ – переход в корневой каталог;

CD (\) TEST – переход в подкаталог TEST текущего (корневого) каталога.

5) TREE – отображение структуры каталогов диска в виде дерева:

TREE [d:[\путь]][/F].

Параметр  /F – в дереве отображаются также и файлы.

Пример:

TREE H : – нарисовать дерево каталогов диска H :.

II. Команды работы с файлами

1) TYPE – просмотр содержимого текстового файла на экране:

TYPE [d:][путь\]имя_файла (в имени маску, т.е. * и ?, использовать нельзя!).

Пример:

TYPE H :\ TXT \ a . txt – просмотр содержимого файла a . txt из каталога H :\ TXT.

Замечание: Для приостановки просмотра необходимо нажать комбинацию клавиш CTRL+S (для продолжения просмотра нажать любую клавишу).

2) DEL – удаление одного или группы файлов:

DEL [d:][путь\]имя_файла (или шаблон) [/P].

Параметр /P – выдача запроса на подтверждение удаления.

Пример:

DEL H :\*.* / P – уничтожить все файлы на диске H : в корневом каталоге с выдачей запроса на подтверждение удаления.

3) COPY – копирование одного или группы файлов, вывод содержимого файла на внешнее устройство, объединение содержимого нескольких файлов в один.

Для копирования файлов:

COPY [d1:][путь1\]имя_файла1 [d2:][путь2\][имя_файла2] [/V].

Параметр  /V – контролирует процесс копирования.

Примеры:

COPY a . txt PRN – распечатать файл a . txt из текущего каталога на принтере;

COPY CON a . txt – создать файл a . txt с клавиатуры (окончание ввода: CTRL+Z);

COPY *. txt H : – скопировать все файлы типа .txt из текущего каталога на диск H :.

Для объединения файлов:

COPY [d1:][путь1\]имя_ф1+[d2:][путь2\]имя_ф2+… [d:][путь\]имя_файла-приемника.

Пример:

COPY a 1. txt + a 2. txt a . txt – объединить содержимое файлов a 1. txt и a 2. txt в a . txt.

4) REN (RENAME) – переименование файла:

REN [d:][путь\]имя_файла1 имя_файла2 (можно использовать шаблон).

Пример:

REN a . txt a . doc – переименовать в текущем каталоге файл a . txt в файл a . doc.

5) COMP – побитовое сравнение файлов (после 10 различий сравнения прекращаются):

COMP [d1:][путь1\]имя_файла1 [d2:][путь2\]имя_файла2 [/L][/C].

Параметры:

/L – отображать номера строк, в которых есть различия;

/C – не различать большие и маленькие буквы.

Пример:

COMP a . txt a . doc – сравнить содержимое файлов a . txt и a . doc из текущего каталога.

III. Редактирование вводимых команд DOS

Для удобства редактирования вводимых команд существует специальная программа DOSKEY. После запуска она становится резидентной. Программа DOSKEY хранит в кольцевом стеке несколько ранее введенных пользователем команд и может выводить их в командную строку DOS. Для управления стеком команд используются клавиши:

· ­(¯) – вызов предыдущей (следующей) команды;

· ALT+F7 – очистка стека команд;

· F7 – вывод на экран списка запомненных команд и их номеров;

· F9 – вывод из стека в командную строку текста команды с данным номером.

При редактировании вводимых и вызванных команд становятся доступными стандартные клавиши перемещения курсора, удаления символов, режима вставки/замены.

Задание макрокоманд: DOSKEY имя макрокоманды=определение макрокоманды.

Конвейеры и фильтры в MS-DOS

Направление стандартного вывода одной программы на вход другой обеспечивается за счет использования конвейеров.

Конвейер – это последовательность команд, осуществляющих поэтапную обработку данных. Для сцепления команд в конвейер используется символ | . Для реализации конвейера MS-DOS использует временный файл, который операционная система сама создает в корневом каталоге и уничтожает после отработки конвейера, т.е. обмен между командами конвейера реализуется через файловую систему.

Пример: P 1| P 2| P 3 – выходной поток программы P 1 подается на вход программы P 2, а выходной поток P 2 является входным для P 3.

В конвейерах в основном используются три команды-фильтра MORE, SORT, FIND.

Фильтром называется программа, считывающая данные со стандартного устройства ввода, преобразующая их по определенному алгоритму и выводящая результат работы на стандартное устройство вывода. Для переадресации отфильтрованных данных в файл или входных данных на фильтр используются символы > и <.

Команды-фильтры: (в них команда должна выводить информацию на экран)

1) MORE – постраничное отображение (файла или результата работы команды):

MORE [< имя_файла]              или

команда| MORE.

Пример:

DIR | MORE – постраничное отображение содержимого текущего каталога;

MORE < a . txt  – постраничное отображение содержимого файла a . txt;

TYPE a . txt | MORE – то же самое;

ECHO | MORE – генерирует маркер EOL, т.е. моделирует нажатие клавиши Enter.

2) SORT – сортировка строк текстового файла в лексикографическом порядке:

SORT [/ R ][/+ n ][имя_файла-источника][> имя_файла-приемника] или команда| SORT [/ R ][/+ n ][> имя_файла-приемника].

Параметры:

/R – сортировка в обратном порядке (от 9 к 0, от Z к A);

/+n – указывает номер позиции в строке, по которой осуществляется сортировка.

Примеры:

SORT / R < a . txt  – отсортировать в обратном порядке строки файла a . txt, результат сортировки вывести на экран;

SORT / R < a . txt > b . txt – то же самое, но результат сортировки вывести в файл b . txt;

DIR | SORT /+10 – отсортировать содержимое текущей директории по расширению имен файлов, результат сортировки вывести на экран.

3) FIND – поиск заданной последовательности символов в текстовом файле:

FIND [/ V ][/ C ][/ N ][/ I ] «фрагмент» имя_файла          или
команда| FIND [/ V ][/ C ][/ N ][/ I ] «фрагмент».

Параметры:

/V – выводить строки, в которых отсутствует «фрагмент»;

/C – выводятся только номера строк, содержащих «фрагмент»;

/N – выводятся номера строк и сами строки, содержащие «фрагмент»;

/I – игнорируются различия строчных и прописных букв.

Пример:

DIR | FIND / V « i » > a . txt – записать в файл a . txt содержимое текущего каталога с игнорированием сообщений об устройстве и свободной памяти (в случае вывода на английском языке в них есть строчная буква «i»).

Командные файлы принадлежат к категории исполняемых файлов и имеют тип bat. Командный файл – это текстовый файл, строки которого могут содержать:

· команды DOS;

· обращение к исполняемым программам (с расширением .com, .exe);

· вызовы других командных файлов;

· специальные команды для управления выдачей на экран;

· специальные команды для организации ветвлений и циклов;

· метки.

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

Командные файлы обрабатываются командным процессором построчно, причем каждая прочитанная строка отображается на экране дисплея (если не был установлен режим ECHO OFF), а затем интерпретируется. Если в начале строки командного файла указать символ @, то данная строка не будет отображаться на экране перед ее интерпретацией.

Некоторые команды . bat -файлов:

CLS – очистка экрана;

ECHO  разрешение или подавление вывода на экран системных сообщений:

[@]ECHO [ON][OFF]

ECHO [строка] – отображение строки на экране;

GOTO – безусловный переход (признаком метки является двоеточие в начале строчки);

IF – проверка условия и ветвление:

IF EXIST имя_файла (или шаблон) – проверка существования файла;

IF текстовая_строка1==текстовая_строка2 … – сравнение двух строк;

Пример:

IF %1= = Y GOTO m – переход на m, если фактический параметр = Y;

IF EXIST a.txt ECHO файл существует! – вывод надписи, если файл имеется;

PATH – работа с поисковыми маршрутами: (путь без пробелов!)

PATH имя_каталога[;имя_кат] – установка списка каталогов для поиска программ;

PATH ; – установка поиска только в текущем каталоге;

PATH без пар-в – вывод имен каталогов, в которых производится поиск программ;

PAUSE – приостановка выполнения программы и ожидание нажатия клавиши;

PROMPT аргумент – задание формата приглашения DOS.

Аргумент – строка из управляющих символов:

$ b – выдача символа-разделителя |;

$ d – выдача текущей даты;

$ g – выдача символа-разделителя >;

$ h – стирание предыдущего символа (BackSpase);

$ n – выдача имени текущего дисковода;

$ p – выдача имени текущего (рабочего) каталога;

$ t – выдача текущего времени;

$ v – выдача номера версии MS-DOS;

$_ – последовательность символов «возврат каретки» и «перевод строки»;

Примеры:

PROMPT $ p $ g – стандартное приглашение, содержащее путь к текущему каталогу;

REM – строка комментариев;

SHIFT – сдвиг списка формальных параметров;

 

С помощью команды Echo можно получить звуковой сигнал компьютера. Для этого следует в выводимое сообщение включить символ с кодом 7. Это можно сделать, нажав клавишу Alt и, не отпуская ее, клавишу 7Home в правой части клавиатуры.

 

Командные файлы с параметрами:

При вызове командного файла можно задать последовательность аргументов, отделенных друг от друга пробелом, которые будут замещать формальные параметры при интерпретации строк .bat -файла. Допускается использовать до 10 формальных параметров с именами %0, %1, …, %9. Действует принцип позиционного соответствия параметров и аргументов, т.е. вместо %0 подставляется имя командного файла, вместо %1 подставляется первый аргумент и т.д. Для обрабатывания неизвестного заранее количества параметров можно использовать команду SHIFT.

Пример: Пусть имеется командный файл pf . bat, содержащий строки:

@ECHO OFF
TYPE %1
PAUSE
TYPE %2
PAUSE

Запустить его на выполнение можно следующим образом: pf . bat f 1. txt f 2. txt .

Кроме того, параметры можно передавать через глобальные переменные, которые устанавливаются командой SET, а затем используются в командном файле. Имя глобальной переменной с двух сторон заключается в %.

Пример: Для добавления маршрута поиска к уже имеющимся в командный файл можно включить строку @SET PATH=%PATH%;H:\PAS.

Рекурсивные (вложенные) вызовы командных файлов:

В общем случае в DOS не предусмотрены вложенные вызовы командных файлов с возвратом. Однако они возможны, если применить особый способ – обращение к командному процессору COMMAND.COM с указанием в качестве аргумента имени вызываемого командного файла.

Пример:

Пусть имеется два командных файла – «вызывающий» x . bat и «вызываемый» y . bat. Оформление вызова y . bat из x . bat и возврат обратно осуществляется по следующей схеме:

Работу выполнять только средствами DOS.


Дата добавления: 2019-02-22; просмотров: 335; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!