
3. Сопровождающие сообщения
ФОРМАТ: ECHO [ON | OFF | <сообщение>]
Команда используется для отключения эха-выдачи на экран сообщений команд или вывода на экран текстовых сообщений. С помощью этой команды можно посылать сообщения на различные устройства, а не только на экран, но и на принтер или в дисковый файл.
Например, чтобы вывести на экран сообщение о копировании файлов, достаточно включить в соответствующую строку BAT-файла команду:
ECHO Начинаю копирование файлов. Ждите...
Можно сделать так, чтобы никакая посторонняя информация при работе BAT-файла не выводилась на экран. В этом случае в первой строке командного файла необходимо записать команду:
ECHO OFF
Снова включить вывод команд на экран можно командой:
ECHO ON
Чтобы не выводить на экран и саму строку ECHO OFF, перед этой командой, в той же строке, ставят символ @, который позволяет отключить эхо для одной конкретной команды:
@ECHO OFF
Команда ECHO без параметров показывает текущее состояние (ON или OFF).
Для вывода на экран пустой строки можно использовать команду в виде ECHO: или с сообщением из неотображаемого символа.
Задание. Добавьте в файл copytxt.bat строки, выводящие сообщения о начале и завершении копирования файлов через несколько пустых строк. Сделайте так, чтобы кроме этих сообщений на экран ничего не выводилось.
4. Пауза в командном файле
ФОРМАТ: PAUSE
Эта команда используется для приостановки выполнения командного файла перед выполнением опасных операций или для выполнения пользователем определенных действий (например, установки дискеты).
По команде PAUSE обработка командного файла временно прекращается и на экран выдается сообщение, предлагающее нажать какую-либо клавишу. Если в ответ на это сообщение нажать любую клавишу, то выполнение командного файла будет продолжено. Однако, если пользователь нажмет комбинацию клавиш Ctrl+Break (или Ctrl+C), то появится запрос:
Terminate batch job (Y/N)? — Прервать работу командного файла (Д/Н)?
При нажатии клавиши N выполнение командного файла будет продолжено, а Y — прекращено. Любой другой ответ приведет к повторению запроса.
Задание. Измените файл copytxt.bat так, чтобы он выдавал сообщение о том, что сейчас будет делать, после этого приостанавливал исполнение и выдавал сообщение с просьбой нажать любую клавишу, после чего продолжал бы работу.
5. Замещаемые параметры
BAT-файл, который мы только что создали, создает каталог с заданным именем и копирует в него файлы по заданному шаблону. Получается, что если мы хотим скопировать другие файлы и в другой каталог, нам придется или изменять старый файл, или создавать новый. Это не очень удобно, и поэтому в DOS включена возможность использования в BAT-файлах так называемых замещаемых параметров. При этом вызов BAT-файла похож на вызов команды DOS с параметрами.
Замещаемые параметры обозначаются внутри командного файла значками %1, %2, ..., %9. Каждый такой значок символизирует соответствующий (первый, второй и т.д.) параметры командной строки. Символом %0 обозначается имя самого командного файла. Замещаемые параметры используются в теле BAT-файла так, как будто это сами параметры.
Усовершенствуем файл copytxt.bat так, чтобы он мог копировать файлы, подходящие под любую маску в произвольный каталог.
Пример 3.
REM Файл COPYALL.BAT для копирования произвольных файлов в произвольный каталог
Rem Создать каталог
md %1
rem Скопировать в него TXT-файлы
copy %2 %1
rem Просмотреть директорию
dir %1
Например, если сохранить этот файл под именем copyall.bat, а затем вызвать его так:
copyall OLEG F:\DOS\*.EXE
то вместо параметра %1 будет подставлено OLEG, а вместо %2 — F:\DOS\*.EXE
Задание. Создайте файл copyall.bat из Примера 3.
Скопируйте с его помощью в каталог с Вашим именем все файлы из каталога F:\DOS, имя которых состоит не более, чем из трех символов.