Командные файлы DOS

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

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

  1. Если командный файл находится в текущем каталоге или в одном из каталогов, указанных в команде DOS path, то необходимо ввести имя этого файла и параметры (если нужно). Расширение .bat можно не указывать. Иначе, необходимо указать полное имя командного файла, включающее путь к каталогу, содержащему данный файл.
  2. Выполнение командного файла можно прервать, нажав на клавиатуре клавиши Ctrl+C или Ctrl+Break. На экране появится запрос: «Прервать выполнение командного файла (Да/Нет)? (Terminate batch job (Y/N))» Если ответить «Да», то выполнение командного файла будет окончено, если «Нет», то выполнение будет продолжено со следующей команды.
  3. В командном файле можно вызвать другой командный файл, указав его имя. После окончания работы вызванного файла, выполнение исходного файла продолжено НЕ будет.
  4. Если требуется продолжить выполнение исходного файла, то это можно сделать командой call.

Команда Call
Вызывает выполнение командного файла из другого командного файла. Если указаны параметры, то эти параметры передаются вызываемому файлу. Они доступны там, как значения символов %1 — %9. По окончании выполнения вызванного файла, выполнение исходного файла продолжается со следующей строки. В команде call не допускается перенаправление ввода/вывода (использование символов < > |).

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

сall имя_командного_файла [параметры]

Пошаговое выполнение командных файлов
Можно вызвать командный файл в пошаговом режиме с помощью команды command.

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

command /Y /C имя_командного_файла [параметры]

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

Параметры командных файлов
Всего может быть использовано до девяти параметров, обозначаемых символами %1 — %9. Если необходимо использовать более девяти параметром, необходимо применить команду shift.

Команда shift присваивает новые значения символам %1 — %9. При этом %0 присваивается старое значение %1, %1 — старое значение %2, и т.д. %9 присваивается значение следующего за старым значением %9 параметра в командной строке, а если он не задан, то новое значение %9 пустая строка. Команду shift можно использовать несколько раз.

В командном файле можно использовать также символ %0, значение которого — имя выполняемого командного файла (в той форме, в которой оно указано в команде, вызвавшей командный файл).

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

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

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

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

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

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

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

echo сообщение

Сообщение выдается на экран, даже если режим вывода команд выключен командой echo off. В сообщении нельзя использовать символы < > |. Сообщение не может быть равным on или off.Перед выдачей сообщения желательно выполнить команду echo off, чтобы сообщение не выводилось дважды. Для того, чтобы вывести пустую строку, можно использовать ehсo. (точка должна следовать сразу за словом «echo»)

Приостановка выполнения файла
Приостановка выполнения командного файла осуществляется с помощью команды pause.

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

pause

При выполнении этой команды на экран выводится сообщение: «Нажмите любую клавишу (Strike a key when ready)», и выполнение приостанавливается. Если нажать любую клавишу, то выполнение продолжится. Перед выполнением команды полезно вывести сообщение о необходимых действиях.

Например:
echo Вставьте дискету disk1 в дисковод
pause

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

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

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

x — любой символ, кроме 0 -9;
список — одно или несколько имен файлов, разделенных пробелами. Можно использовать * и ?;
команда — любая программа или команда DOS, кроме for.

При использовании команды for в командном файле вместо %x надо указывать %%х.

Пример:

При вызове из командной строки:
for %c in (1 2 3 4 5 6 7 8 9 0) do copy %c*.* d: — копировать все файлы из текущего каталога с именами, начинающимися на цифры, в текущий каталог диска d:.

Та же команда в командном файле:
for %%c in (1 2 3 4 5 6 7 8 9 0) do copy %%c*.* d:

Переходы в командном файле
Метка — любая строка, начинающаяся с «:». Имя метки — символы, следующие за двоеточием до первого пробела или конца строки. Для перехода используется команда goto. Если после команды goto метка не указана, то выполнение командного файла завершается.

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

goto метка

Команда IF
Позволяет выполнять или не выполнять команды в зависимости от условий.

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

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

Команда — любая допустимая команда (в том числе goto). Команда выполняется, если условие истинно, в противном случае команда игнорируется.
Условие — одно из приведенных ниже выражений:
ERRORLEVEL число — условие истинно, когда код завершения предыдущей выполненной программы больше заданного числа или равен ему. Код завершения устанавливается программой при окончании работы, по умолчанию равен 0;
строка1==строка2 — условие истинно, когда две строки полностью совпадают.
Если в строках имеются символы %0-%9, то вместо этих символов подставляются параметры командного файла;
EXIST имя файла — истинно, когда указанный файл существует;
NOT условие — истинно, когда условие ложно.

Диалоговые командные файлы

С помощью команды choice можно выполнять различные действия по выбору пользователя.

choice [/C:список_символов] [/T:символ,число_секунд] сообщение

/C:список_символов — указывает символы, которые можно ввести в ответ на сообщение. Если данный параметр не указан, то допустимые символы — это Y и N;
/T:символ,число_секунд — если параметр указан, то в случае, когда пользователь по истечении заданного времени не нажал ни на одну клавишу, то принимается ответ символ;
сообщение — указывает сообщение, выводимое на экран.

Чтобы при вводе символов различались прописные и строчные символы, укажите в команде параметр /S.
Если в сообщении имеется символ «/», то его следует заключить в кавычки.
Обычно к сообщению подставляется список допустимых для ответа символов (через запятую в квадратных скобках). Чтобы не выводить список, следует указать в команде параметр /N.

Программа choice выводит указанное сообщение и ждет, пока пользователь не введет один из указанных в списке символов. При указании параметра /T, если в течение указанного в этом параметре времени пользователь не нажал ни на одну клавишу, то принимается указанный в этом параметре ответ. Значение переменной ERRORLEVEL устанавливается равным номеру введенного символа в списке.

Перенаправление ввода/вывода
команда > имя_файла — перенаправление в файл сообщений, выводимых с помощью указанной команды. Если файл существует, то он заменяется новым.
команда >> имя_файла — перенаправление в файл сообщений, выводимых с помощью указанной команды. Если файл существует, то сообщения добавляются в конец этого файла.
команда < имя_файла — чтение входных данных команды (программы) не с клавиатуры, а из файла
команда | команда — передача сообщений, выводимых на экран первой команды в качестве входных данных для второй команды.

 

Источник: detc.ls.urfu.ru