ГлавнаяНастройка некоторых параметров ОС WindowsРеестрMSDOSКомандные файлыDownloads
ForumGuest book
 
 

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

Вызов другого командного файла

Пошаговое выполнение командных файлов

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

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

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

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

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

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

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

Проверка условий в командном файле

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

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

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

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

2. Для выполнения командных файлов, не находящихся в текущем каталоге или в одном из каталогов, указанных в DOS Path, необходимо указать полное имя командного файла, включающее путь к тому каталогу, в котором находится командный файл. Расширение имени файла .BAT можно не указывать.

Например, пусть текущий каталог – c:\DOC\WORK, а надо выполнить командный файл ACCOUNT.BAT, находящийся в каталоге C:\DOC\BATCH, и указать параметры командного файла BILL.DOC и /p. Тогда для выполнения командного файла необходим ввести следующую команду: 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. Если вынуть дискету, на которой расположен выполняемый на данный момент командный файл, то перед выполнением следующей команды DOS попросит Вас снова вставить эту дискету в дисковод.

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

Вызов другого командного файла.

Если из командного файла вызвать другой командный файл, вставив в него имя этого командного файла с необходимыми параметрами, то после завершения вызванного файла возврата управления в исходный командный файл не произойдет. Если же такой возврат необходим, следует использовать команду CALL. Формат команды:

CALL имя-командного-файла [параметры]

Команда CALL вызывает выполнение командного файла из другого командного файла. Если в командной строке указаны какие-либо параметры, кроме имени командного файла, то эти параметры передаются командному файлу, они доступны там как значения символов %1 - %9. По окончании выполнения вызванного командного файла продолжается (со следующей строки) выполнение исходного файла.

Замечание: В конце файла не допускается перенаправление ввода-вывода (использования символов “<”,”>”, и “¦”).

Пошаговое выполнение командных файлов

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

Command /y/c имя-командного-файла [параметры]

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

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

Часто приходится выполнять одни и те же команды или последовательности команд DOS с весьма небольшими отличиями. Например, для трансляции программы на Фортране с помощью транслятора фирмы Microsoft надо набирать команды типа: f1/4I2/AL/Ox/FPi87/c имя-файла. Чтобы упростить вызов транслятора, можно создать файл FORT.BAT следующего содержания:

F1/4I2/AL/Ox/FPi87/c %1

Здесь символ %1 означает первый параметр, указанный при вызове командного файла. Например, если ввести команду FORT SIMPSON.FOR и тем самым будет выполнена команда f1/4I2/AL/Ox/FPi87/c SIMPSON.FOR

Символы %1 - %9. Всего может быть использовано до 9 параметров, обозначаемых символами %1 - %9. Если при вызове командного файла задано меньше девяти параметров, то «лишние» символы из %1 - %9 замещаются пустыми строками. Если вы хотите использовать в командном файле более девяти параметров, можно применить команду SHIFT. (см. ниже).

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

Использование символа «%». Если в командном файле знак процента используется не для обозначения параметров, а для других целей, то его надо набрать дважды. Так, чтобы в командном файле указать файл XYZ%.COM, надо написать в строке командного файла XYZ%%.COM /

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

Пример: Пусть командный файл ХХХ.ВАТ вызван следующей командной строкой:

ХХХ AA BB CC. Тогда %0= «ХХХ.ВАТ», %1= «АА», %2 = «СС», %4 - %9 = пустые строки. После выполнения команды SHIFT: %0 = «АА», %1 = «ВВ», %2 = «СС», %3 -%9 = пустые строки.

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

Команда Echo. По умолчанию команды пакетного файла выводятся на экран перед выполнением. Если в пакетный файл вставить команду ECHO OFF, то команды выполняемые за ней не будут выводиться на экран. А команда ECHO ON включает режим вывода выполняемых команд на экран.

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

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

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

REM любые-символы.

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

ECHO сообщение

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

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

Вывод пустой строки. Чтобы вывести на экран пустую строку (это может понадобиться для повышения удобочитаемости сообщений), можно использовать команду 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, то выполнение командного файла будет продолжено со следующей команды.

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

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

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

Параметры:

Х – любой символ (кроме (0 – 9, чтобы не было смешения с параметрами командных файлов %0 - %9);

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

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

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

For %c in (*.asm) do masm %c – для всех файлов из текущего каталога с расширением .ASM вызвать макроассемблер MASM;

For %f in (*.pas *.exe) do fc %f a:%f – сравнить файлы с расширением .PAS и .EXE из текущего каталога с такими же файлами на диске A: ;

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

В командном файле те же примеры надо было бы записать так:

For %%c in (*.ASM) do masm %%c

For %%f in (*.PAS *.EXE) do fc %%f a:%%f

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

Замечание о длинных именах. При наличии длинных имен файлов или каталогов, сгенерированных в Windows 95 или Windows NT, когда for по умолчанию не будет замечать имена, а будет видеть (и выдавать) только соответствующие короткие имена. Однако в MS DOS 7.0 Вы можете переключить команду for на работу с длинными именами. Для этого перед командой for надо выдать команду LFNFOR ON. Для возврата к работе с короткими именами можно выдать команду LFNFOR OFF

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

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

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

Переходы. Чтобы в командном файле выполнение команд было продолжено начиная со строки, которая следует сразу после некоторой метки, надо воспользоваться командой GOTO.

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

Пример:

GOTO xxx

. . .

:xxx

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

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

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

Проверка условий в командном файле

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

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

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

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

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

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

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

Пример. Создадим файл TYP.BAT, который выводит некоторый файл на экран. Формат вызова будет: TYP – имя файла. Мы будем проверять, задан ли при вызове параметр и существует ли указанный файл. Командный файл TYP.BAT может быть таким:

Echo off

If -% == - goto no_param

If not exist %1 goto not_exist

Type %1

:no_param:

echo Должен быть задан параметр

goto exist

:not_exist

echo Файл %1 не найден

:exit

В строке 2 проверяется, что параметр командного файла задан. Если параметр не задан, то происходит переход на метку no_param, выдается сообщение: «Должен быть задан параметр», и выполнение командного файла прекращается. В строке 3 проверяется, что указанный в команде файл существует. Если он не существует, то выдается сообщение: «Файл … не найден» (… - параметр, заданный в команде TYP), и выполнение командного файла прекращается.

 
 
Rambler's Top100
Hosted by uCoz