Возможности командных файлов MS - DOS
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Возможности командных файлов MS - DOS

 

                                        

                                             Выполнил: Кузнецов А.Ю.                                                                            

                                                    студент физического факультета,

                                                            821 группа

                                                            Проверил: Касаткин К. А.

                                                            старший преподаватель кафедры

                                                            информационных технологий в

                                                            физическом образовании

                                            

 

 

                                                            

 

 

                                          

 

                                                     г. Глазов         



Содержание

Введение

Выполнение командных файлов

Вызов командных файлов с возвратом. Команда Call

3. Параметры в командных файлах

Общие сведения

Символические имена параметров командного файла

Команда Shift

Переменные среды MS-DOS и работа с ними в командных файлах

Общие сведения

Доступ к переменным среды MS-DOS в командном файле

Управление отображением команд на экране

5.1. Команды ‘Echo on’ и ‘Echo off’

5.2. Командный префикс @

Вывод сообщений в командных файлах

Команда Echo

Получение звукового сигнала

Вывод пустой строки

Вывод сообщений в файл

Комментарии в командных файлах

Паузы в командных файлах

Выполнение команды для набора файлов. Команда For

Организация переходов в командных файлах

Метки

Переходы. Команда Goto

Проверка условий в пакетных файлах. Команда IF

Диалог с пользователем в командных файлах. Команда Choice

Введение

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

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

C: Cd\ Del Temp\*.* Defrag C: /f – Переход на диск С:. – Переход в корневой каталог. – Удаление временных файлов в каталоге ‘C:\Temp’. – Дефрагментация диска С:.

Чтобы не набирать каждый раз эти команды вручную, запишем их в текстовый файл, располагая каждую команду на отдельной строке. Данный файл назовем ‘Compact.bat’ и сохраним его в каталоге, где находятся служебные файлы и команды MS-DOS. Если теперь ввести команду ‘Compact’, тогда автоматически выполнится содержащаяся в нем последовательность команд.

Выполнение командных файлов

Рассмотрим действия, которые необходимо предпринять для запуска командных файлов, а также то, как они выполняются операционной системой MS-DOS.

1. Для выполнения пакетного файла, находящегося в текущем каталоге или в одном из каталогов, указанных в команде Path файла Autoexec.bat, выполняемого при загрузке MS-DOS, достаточно просто ввести имя этого файла и параметры, отделенные друг от друга пробелами. Расширение имени командного файла (т.е. .bat) можно не указывать.

2. Для выполнения пакетных файлов, не находящихся в текущем каталоге или в одном из каталогов, указанных в команде Path, следует обязательно указывать полный путь к каталогу, в котором находится пакетный файл, его имя и передаваемые ему параметры. Общий вид команды вызова пакетного файла будет таким:

(диск:) (\путь\) имя-командного-файла (пар1 пар2 … парk)

Здесь пар1 пар2 … парk – параметры командного файла.

Пример. Пусть текущий каталог – ‘C:\Doc\Work’, а надо выполнить командный файл ‘Account.bat’, находящийся в каталоге ‘C:\Doc\Batch’, и указать ему два параметра: ‘Bill.doc’ и ‘/Р’. Для выполнения этого пакетного файла нужно ввести следующую команду:

C:\Doc\Batch\Account Bill.doc /P

или команду

..\Batch\Account Bill.doc /P

3. Выполнение командного файла можно прервать, нажав комбинацию клавиш Ctrl + C или Ctrl + Break . После этого на экране появится запрос:

Terminate batch job (Y/N)?

который означает

Прервать выполнение пакетного файла (Да/Нет)?

Если ответить Y то выполнение пакетного файла будет окончено, а оставшиеся невыполненные команды будут проигнорированы. Если ответить N , то выполнение пакетного файла будет продолжено.

4. Если вынуть дискету, на которой расположен выполняемый в данный момент командный файл, то перед выполнением следующей команды MS-DOS попросит снова вставить эту дискету в дисковод.

5. Из одного командного файла можно вызвать другой командный файл, просто указав его имя (и, если надо, полный путь к нему и параметры). Однако после окончания работы вызванного файла выполнение исходного командного файла продолжено не будет. Если требуется выполнить другой командный файл, а затем продолжить выполнение исходного командного файла, тогда следует использовать команду Call .

6. В MS-DOS, начиная с версии 6.2, возможно вызвать пакетный файл в пошаговом режиме. Это может быть очень удобно для его отладки. Формат команды:

Сommand /Y /С имя-командного-файла (параметры)

Текст каждой команды будет выводиться перед выполнением на экран. Для выполнения команды надо нажать клавишу Y или Enter , для пропуска команды - N или Esc .

Общие сведения

Часто приходится выполнять одни и те же команды или последовательности команд MS-DOS с весьма небольшими отличиями. Например, для трансляции программы на Фортране с помощью транслятора фирмы Microsoft надо набирать команды типа:

fl /4I2 /AL /Ox /PP187 /с имя - файла

Чтобы упростить вызов транслятора, можно создать файл Fort.bat следующего содержания:

fl /4I2 /AL /Ox /PP187 /с %1

Здесь символическое имя %1 означает первый параметр, указанный при вызове пакетного файла. Например, если ввести команду ‘Fort Simpson.for’, тогда вместо %1 будет подставлено ‘Simpson.for’ и тем самым будет выполнена команда:

fl /4I2 /AL /Ox /PP187 /с Simpson.for

Команда Shift

Иногда в командном файле требуется применить более девяти параметров, либо выполнить одинаковую обработку для всех параметров командного файла. В этих случаях следует использовать команду Shift. Если она встречается в командном файле, тогда символические имена его параметров приобретают новые значения: в %0 попадет прежнее значение из %1, в %1 – прежнее значение из %2 и т.д. В %9 будет помещено значение десятого параметра из командной строки, а если он не задан, тогда новое значение %9 - пустая строка. Команду Shift можно использовать несколько раз.

Пример. Пусть командный файл ‘Dummi.bat’ вызван следующей командной строкой:

Dummi а bb сcc

Тогда %0 = ‘Dummi’, %1 = ‘а’, %2 = ‘bb’, %3 = ‘ccc’, а параметры с %4 по %9 содержат пустые строки. После однократного выполнения команды Shift имеем: %0 = ‘а’, %1 = ‘bb’, %2 = ‘ccc’, а параметры с %3 по %9 содержат пустые строки.

4. Переменные среды MS-DOS и работа с ними в командных файлах

Общие сведения

Операционная система MS-DOS имеет специальную область памяти, называемую средой или окружением (от англ. environment), в которой хранится набор символьных строк, доступных во всех программах и командных файлах. Каждая строка в окружении MS-DOS имеет вид:

имя-переменной = значение,

Здесь имя-переменной - это строка символов, без знаков равенства и пробелов, а значение – любая строка символов.

Команда Echo

Данная команда позволяет выдавать из командного файла сообщения на экран. Формат команды:

Echo сообщение

Указанное сообщение выводится на экран даже тогда, когда режим вывода исполняемых команд на экран выключен командой ‘Echo off’. Сообщение не может быть пустым или равным зарезервированному слову ‘on’ или ‘off’, так как команды ‘Echo on’ и ‘Echo off’ управляют режимом вывода исполняемых команд на экран, а команда Echo без параметров сообщает, включен или выключен режим дублирования команд на экран.

Замечания.

1. В сообщении не следует употреблять символов ‘<’, ‘>’ и ‘|’ - они интерпретируются как символы перенаправления ввода-вывода.

2. Перед командой ‘Echo сообщение’ желательно выполнить команду ‘@Echo off’, чтобы сообщение не выводилось на экран дважды.

Получение звукового сигнала

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

Вывод пустой строки

Чтобы вывести на экран пустую строку, а это может понадобиться для повышения удобочитаемости сообщений, можно использовать команду:

Echo.

Точка должна следовать сразу за словом ‘Echo’. Другой вариант - вывести сообщение, состоящее из одного символа с кодом 255, который при выводе на экран никак не отображается.

Вывод сообщений в файл

С помощью символа перенаправления ввода-вывода ‘>’ можно выводить сообщения не на экран, а в файл.

Для добавления строки с сообщением в конец файла следует применить такую команду:

Echo сообщение>> имя-файла

Замечание. Если файл не существует, тогда он создается.

Для создания файла и запись в него строки с сообщением нужно применить такую команду:

Echo сообщение> имя-файла

Замечание. Если указанный файл уже существует, то его старое содержимое будет потеряно.

Паузы в командных файлах

Во время выполнения пакетного файла может возникнуть необходимость в его приостановке (например, для вставки нужной дискеты). Для этого можно использовать команду Pause. При выполнении этой команды на экран выводится сообщение:

Strike a key when ready ...

которое означает:

Нажмите любую клавишу, когда будете готовы …

После вывода этого сообщения выполнение командного файла приостанавливается. Если нажать любую алфавитно-цифровую клавишу, Пробел или Enter , тогда выполнение командного файла будет продолжено.

Замечание. Перед выдачей команды Pause полезно командой ‘Echo’ вывести сообщение пользователю о необходимых действиях, например вот так:

Echo Вставьте дискету в дисковод А:

Pause

9. Выполнение команды для набора файлов. Команда For

Команда For позволяет выполнить некоторую команду для нескольких файлов из указанного списка. Она может употребляться не только в командных файлах, но и вводиться пользователем в командной строке MS-DOS. Формат команды:

For %x in (список)команда

где х- любой символ, кроме ‘0’, ‘1’, …, ‘9’ (это ограничение нужно для того, чтобы не было совпадений с параметрами %0 - %9 в командном файле);

список - одно или несколько имен файлов, разделенных пробелами. В именах файлов можно использовать символы ‘*’ и ‘?’;

команда - любая программа или команда MS-DOS, кроме команды For. Если в команде употреблено выражение %x, тогда оно заменяется именами файлов из списка.

Примеры использования команды For в командной строке MS-DOS:

1. Для всех файлов из текущего каталога с расширением .asm вызвать макроассемблер MASM:

For %a in (*.asm) do masm %a

2. Сравнить файлы с расширениями .PAS и .ЕХЕ из текущего каталога с такими же файлами на диске А:

For %b in (*.pas *.exe) do Fc %b A:%b

3. Копировать все файлы из текущего каталога с именами, начинающимися с цифры, в текущий каталог диска D:

For %c in (1 2 3 4 5 6 7 8 9) do Copy %c*.* D:

Замечание. Если команды For используется в пакетном файле, а не в командной строке MS-DOS, тогда вместо аргумента %x надо указывать %%x (см. пример ниже).

Пример. Вызов команды For в командном файле. Для того, чтобы команды, приведенные в предыдущем примере, правильно работали в пакетном файле, их надо записать так:

For %%a in (*.asm) do masm %%a

For %%b in (*.pas *.exe) do Fc %%b A:%%b

For %%c in (1 2 3 4 5 6 7 8 9) do Copy %%c*.* D:

Замечание. Если на диске имеются длинные имена файлов или каталогов, созданные в Windows 95/98 или Windows NT, тогда команда For по умолчанию не будет замечать эти имена, а будет обрабатывать только соответствующие им короткие имена. В MS-DOS 7.0 Вы можете переключить команду For на работу с длинными именами. Для этого перед командой For надо выдать команду ‘LfnFor On’. Для возврата к работе с короткими именами нужно выдать команду ‘LfnFor Off’.

10. Организация переходов в командных файлах

Любой пакетный файл может содержать метки и команды перехода. Это позволяет управлять порядком выполнения содержащихся в нем команд.

Метки

Любая строка командного файла, начинающаяся с символа двоеточия ‘:’, воспринимается как метка. Имя метки определяется набором символов, следующих за двоеточием до первого пробела или конца строки. Остаток строки, начиная с первого пробела, игнорируется.

Переходы. Команда Goto

Для организации переходов по метке существует команда:

Goto метка

Если метка, указанная в команде Goto, отсутствует в командном файле, тогда его выполнение завершается с ошибкой.

Пример:

Goto Tag

. . .

:Tag

REM продолжение выполнения командного файла

В этом примере с помощью команды ‘Goto Tag’ производится переход к строке командного файла, следующей за меткой Tag.

11. Проверка условий в пакетных файлах. Команда IF

Команда IF позволяет в зависимости от выполнения некоторых условий выполнять или не выполнять требуемую команду. Формат команды:

IF условие команда

Здесь команда – это любая допустимая команда (в том числе Goto). Эта команда выполняется, если условие в команде IF истинно, в противном случае команда игнорируется.

Строка условие – это одно из приведенных ниже выражений:

ERRORLEVEL число– истинно тогда, когда код завершения предыдущей выполненной программы больше или равен заданному числу. Код завершения устанавливается программами при окончании их работы, по умолчанию этот код равен нулю.

EXIST имя - файла –истинно, если указанный файл существует.

NOT условие–истинно, когда указанное условие ложно.

строка1== строка2 – истинно, если строка1 и строка2 полностью совпадают. Если в этих строках имеются символы %0, %1, %2, …, %9, тогда вместо них подставляются параметры командного файла.

Пример. Создадим командный файл Typ.bat, который выводит указанный как параметр файл на экран. Формат вызова будет: ‘Typ имя-файла’. В этом командном файле нужно проверить, задан ли при вызове параметр и существует ли указанный файл. Командный файл Typ.bat имеет следующий вид:

@Echo off – Отключаем ‘эхо’.
IF -%1 == - goto NoParam – Параметр задан? Если нет, тогда идем на метку NoParam.
IF not exist %1 goto NoFile – Файл существует? Если нет, тогда идем на метку NoFile.
Type %1 – Выводим содержимое файла на экран.
Goto End – Переходим в конец.
:NoParam Echo Задайте параметр! Goto End – Выводим сообщение, что нужно задать параметр, затем переходим в конец.
:NoFile Echo Файл не найден! – Выводим сообщение, что указанный в качестве параметра файл не найден.
:End – Конец командного файла.

Замечание. Коды возврата, которые имеет смысл проверять с помощью команды ‘IF ERRORLEVEL’, возвращают следующие программы MS-DOS: ChkDsk, Choice, Defrag, Deltree, DtskComp, DiskCopy, Find, Format, KeyB, Move, MSAV, Replace, Restore, Scandisk, SetVer и ХСору.

Сравнение с пустой строкой. Используя в команде IF символьные имена параметров %0 - %9 следует проявлять осторожность. Например, сравнение второго параметра командного файла со строкой ‘sss’ не следует делать так:

IF %2 == sss …

Дело в том, что если в командный файл передано меньше двух параметров, тогда все символы %2 в нем будут замещены пустой строкой, и при выполнении команды возникнет ошибка из-за того, что аргумент слева от оператора ‘==’ будет отсутствовать. Правильная команда сравнения должна использовать префикс ‘-’ в аргументах:

IF -%2 == -sss ...

Эта команда работает корректно при любом значении параметра %2.

Возможности командных файлов MS - DOS

 

                                        

                                             Выполнил: Кузнецов А.Ю.                                                                            

                                                    студент физического факультета,

                                                            821 группа

                                                            Проверил: Касаткин К. А.

                                                            старший преподаватель кафедры

                                                            информационных технологий в

                                                            физическом образовании

                                            

 

 

                                                            

 

 

                                          

 

                                                     г. Глазов         



Содержание

Введение

Выполнение командных файлов

Дата: 2019-12-10, просмотров: 236.