Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций MS dos + Norton Commander.doc
Скачиваний:
16
Добавлен:
04.11.2018
Размер:
21.07 Mб
Скачать

Дублирование команд на экран

По умолчанию команды пакетного файла выводятся на экран перед выполнением. Если в пакетный файл вставить команду echo off, то выполняемые за ней команды не будут выводиться на экран. После выдачи команды echo off часто полезно использовать команду cls, чтобы сделать более удобным просмотр сообщений, выводимых из командного файла.

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

Можно избежать вывода (дублирования) на экран и любой отдельной строки командного файла. Для этого надо поставить в начале этой строки символ «@». В частности, можно избежать выдачи на экран команды echo off, поставив перед ней символ «@»: @echo off .

Таким образом, командный префикс «@» можно рассматривать как версию команды echo off, действующую для одной команды командного файла. Командный префикс «@» полезно использовать в начале пустых строк командного файла и поясняющих комментариев, которые нежелательно выводить на экран даже в режиме отладки.

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

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

Формат команды:

rem любые-символы

Перед комментариями, которые нежелательно выводить на экран даже при отладке (при включённом режиме вывода выполняемых команд командного файла на экран), целесообразно ставить символ «@».

Пример: @rem Этот текст является комментарием

Замечание, В комментарии не следует употреблять символов «<», «>», и «|» -- они интерпретируются как символы перенаправления ввода-вывода DOS.

Сообщения при выполнении командного файла

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

Формат команды:

echo сообщение

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

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

Замечание. В сообщении не следует употреблять символов «<», «>», и «|» – они интерпретируются как символы перенаправления ввода-вывода DOS.

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

Вывод пустой строки. Для того чтобы вывести на экран пустую строку (это может понадобиться для повышения удобочитаемости сообщений), можно использовать команду echo, (точка должна следовать сразу за словом «echo»). Другой вариант – вывести сообщение, состоящее из одного символа с кодом 255.

Вывод сообщений в файл. С помощью средств перенаправления вывода DOS можно выводить сообщения не на экран, а в файл. Это может быть полезно, например, для протоколирования работы командного файла. Формат команды:

echo сообщение >> имя-файла добавление строки с сообщением в конец данного файла (если такой файл не существует, то он создается);

echo сообщение > имя-файла – создание файла и запись в него строки с сообщением (если такой файл уже существует, то его старое содержимое будет потеряно).

Приостановка выполнения командного файла

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

Формат команды:

pause .

При выполнении этой команды на экран выводится сообщение:

Strike a key when ready . . .

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

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

Terminate batch job (Y/N)?

(Прервать выполнение командного файла, Y — да, N — нет)

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

Полезно перед выдачей команды pause выводить сообщение о том, какие надо выполнить действия. Например:

echo Поставьте дискету DISK01 на дисковод А:

pause

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

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

Любая строка командного файла, начинающаяся с двоеточия"«:», воспринимается при обработке командного файла как метка. Имя метки определяется набором символов, следующих за двоеточием до первого пробела или конца строки (остаток строки после первого провела игнорируется).

Для того чтобы указать командному процессору DOS, что требуется продолжить выполнение команд из командного файла, начиная со строки, которая следует сразу после некоторой метки, надо воспользоваться командой

GOTO метка

Если метка в команде GOTO не указана, то процесс пакетной обработки завершается.

Пример:

GOTO xxx

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

В этом примере после выполнения команды GOTO xxx выполнение командного файла продолжается со строки, следующей за меткой ххх, т.е. со строки

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