Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MS-DOS.doc
Скачиваний:
11
Добавлен:
13.11.2018
Размер:
162.82 Кб
Скачать

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

Выполняется командой pause.

Например:

cls

pause

prompt $t$s$g

После очистки экрана будет выполненная приостановка до тех пор, пока пользователь не нажмет какую-либо клавишу, далее будет изменено приглашение DOS.

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

Часто приходится выполнять одни и те же последовательности команд, но с разными параметрами команд. В этом случае создают командные файлы с параметрами. Параметры определят те части файла, которые могут изменяться в зависимости от условий запуска bat-файла.

Всего в командном файле можно использовать до девяти параметров, они имеют обозначения %1, %2, …, %9. Можно использовать также параметр %0 – его значение – имя самого командного файла. Если в файле не используются какие-то параметры (не заданы), то их значение считается равным пустой строке.

Рассмотрим следующий командный файл:

md %1

prompt %2

copy con %1\%3

В этом файле используются три параметра: %1 – имя создаваемого каталога, %2 – вид приглашения, %3 – имя создаваемого с клавиатуры текстового файла.

Назовем данный командный файл b.bat. тогда при его запуске нужно будет указать три параметра, например:

b.bat first $d$l text.txt

Тогда после выполнения командного файла будет создан каталог first в текущем каталоге, затем изменено приглашение MS DOS и создан файл text.txt в новом каталоге, текст которого нужно будет ввести с клавиатуры.

Иногда в командных файлах бывает недостаточно девяти параметров, для решения этой проблемы используют команду shift:

shift

Эта команда производит переприсвоение значений параметров так, что первому присваивается значение второго, второму – третьего и т.д.

Например, командный файл:

md second

copy %1 second

shift

copy %1 second

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

b.bat 1.txt 2.txt

При выполнении этого файла будет создан каталог second и в него будут скопированы оба файла, первый – первой командой copy, второй – второй.

Отключение вывода команд bat-файла на экран и вывод сообщений

В процессе выполнения команд bat-файла на экран выводятся эти команды со своими параметрами. Чтобы отключить вывод команд на экран используют команду echo off.

Включение вывода на экран выполняют командой echo on.

Можно отключить вывод не всех строк файла, а только отдельных, для этого перед командой ставят символ «@».

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

Echo сообщение

Например:

@echo off

cls

copy %1 %2

echo Копирование завершено

В данном случае после начала выполнения командного файла будет произведена очистка экрана, а после завершения будет выведено сообщение «Копирование завершено».

Безусловный и условный переход в командных файлах

Командный файл может содержать метки и команды перехода к ним. Метка ставится в отдельной строке, она начинается с символа «:», далее могут следовать буквы или цифры.

Переход к метке осуществляется командой

goto метка

после выполнения команды goto, происходит переход к строке, следующей за указанной в команде меткой. Если при выполнении команды goto соответствующая метка в файле не найдена, то выполнение файла прекращается.

Например:

md newdir

goto a

copy 1.txt newdir

:a

copy 2.txt newdir

В этом случае после создания нового каталога newdir, в него будет скопирован файл 2.txt, а команда copy 1.txt newdir будет пропущена.

Описанный ранее переход называется безусловным, так как не зависит ни от каких условий. Если необходимо выполнить какие-то команды в bat-файле в зависимости от выполнения (или невыполнения) какого либо условия, применяют условный переход.

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

Команда выполнится в том случае, если условие истинно. В противном случае происходит переход к следующей за if командой.

Возможны следующие виды условий:

строка1 == строка2 – условие истинно, если строки полностью совпадают. Если вместо одной из строк используются параметры %0-%9, то при сравнении вместо них подставляются соответствующие значения параметров.

exist имя_файла – условие истинно, если указанный файл существует, причем вместо имени файла также могут использоваться параметры.

not условие – отрицание условия.

Например:

Echo off

Cls

if -%1== - goto n_p

if not exist %1 goto n_e

copy %1 first

echo Файл %1 скопирован

goto exit

:n_p

echo Параметр отсутствует

goto exit

:n_e

echo Файл не существует

goto exit

:exit

В этом примере команда if -%1== - goto n_p производит проверку наличия параметра, и если параметр отсутствует, то осуществляется переход к метке n_p. Символ «-» позволяет избежать возникновения синтаксической ошибки в случае отсутствия параметра. Команда if not exist %1 goto n_e проверяет существование файла, указанного в параметре. Если файл не существует, то осуществляется переход к метке n_e. И только если оба условия окажутся ложными произойдет копирование файла заданного параметром.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]