Операционная система OS/2 Warp© Александр Фролов, Григорий ФроловТом 20, М.: Диалог-МИФИ, 1993, 271 стр. 4.6. Пакетные файлыВ операционной системе IBM OS/2 используются пакетные файлы двух типов - bat-файлы для сеансов DOS и cmd-файлы для текстовых сеансов IBM OS/2. Первые из них хорошо знакомы вам из руководств по операционной системе DOS. Пакетные файлы, предназначенные для текстовых сеансов IBM OS/2, так же как и bat-файлы, представляют собой текстовые файлы, содержащие строки команд. Эти строки последовательно считываются и интерпретируются командным процессором command.com операционной системы IBM OS/2. Помимо команд IBM OS/2 строки пакетных cmd-файлов могут содержать операторы, предназначенные, например, для организации процедур и циклов, безусловных переходов и т. д. В этом разделе мы приведем краткое описание таких операторов. Кроме того, пакетные файлы используются для составления программ на процедурном языке REXX. Этот язык позволяет создавать достаточно мощные пакетные и диалоговые системы. К сожалению, в этой книге нет возможности обсудить использование языка REXX. CALLС помощью оператора CALL можно организовать вызов другого пакетного файла. После его обработки продолжится интерпретация первого пакетного файла, сделавшего такой вызов. Вызываемому пакетному файлу можно передать параметры, например: call setdb %1 %2 В этом примере вызывается пакетный файл setdb.cmd. CMDС помощью оператора CMD можно запустить еще один командный процессор. Для завершения работы запущенного командного процессора введите команду EXIT. Приведем синтаксис оператора CMD: CMD [Путь_Для_Переменной_COMSPEC] [Параметры] В операторе CMD вы можете задать путь, который
будет использован для инициализации переменной
среды COMSPEC. Другие параметры оператора CMD
приведены ниже:
COMMANDЗапуск другого командного процессора DOS.
Оператор используется также, как и в среде DOS.
Приведем список возможных параметров:
ECHOС помощью этого оператора вы можете разрешить или запретить отображение на экране интерпретируемых команд, а также вывести какое-нибудь сообщение: ECHO ON TYPE C:\CONFIG.SYS ECHO Press any key... ECHO OFF SETLOCALОператор SETLOCAL позволяет определить в пакетном файле переменные среды, а также установить текущий диск и каталог локально по отношению к текущему пакетному файлу. Например: setlocal d: cd test set STRANGE=ZZ:\... endlocal Фрагмент заканчивается оператором endlocal, который ограничивает область локального определения. ENDLOCALОператор ENDLOCAL ограничивает локальную область определения текущего диска, каталога и переменных среды (см. выше описание оператора SETLOCAL). EXITКоманда завершает работу копии программы командного процессора cmd.exe или command.com, возвращая управление предыдущей копии, если она есть в памяти. Если же такой копии нет, текстовый сеанс закрывается и пользователь возвращается к работе в среде Workplace Shell. EXTPROCС помощью оператора EXTPROC пользователь может назначить для пакетного файла собственный командный процессор, указав в качестве параметра путь к соответствующему программному файлу. Например: extproc c:\cmdproc\cmdplus.exe Если для обработки пакетного файла вы будете использовать свой собственный командный процессор, в первой строке такого файла необходимо расположить команду EXTPROC. FORС помощью оператора FOR можно организовать многократное выполнение одной и той же команды (цикл). Синтаксис оператора FOR приведен ниже: FOR %%c IN (Набор_Параметров) DO Команда Здесь вместо переменной c можно указывать любые символы, включая цифры от 0 до 9. Набор параметров представляет собой произвольную последовательность строк, разделенных пробелом. В качестве команды можно указывать любую команду IBM OS/2. В процессе выполнения цикла переменной %%c по очереди присваиваются значения из набора параметров, указанных в скобках. Для каждого такого значения выполняется команда, указанная после ключевого слова DO. Например, для того чтобы организовать многократный вызов команды PRINT с целью печати нескольких файлов, можно использовать следующий цикл: do %%f IN (text1.txt text2.txt text3.txt) DO print %%f GOTOОператор GOTO позволяет организовать переход в пакетном файле. Он используется таким же образом, что и в пакетных файлах DOS: goto Exit .... :Exit IFОператор IF предназначен для выполнения команд (например, организации условных переходов в командных файлах) по результату проверки кода завершения команды, существования файла или равенства двух переменных среды. Синтаксис оператора IF представлен ниже: IF [NOT] Условие Команда Можно использовать три варианта записи условия: ERRORLEVEL Число Строка1==Строка2 EXIST Путь_К_Файлу В первом случае проверяется код завершения программы. Если код завершения больше или равен указанному в условии, то это условие выполняется. Во втором случае проверяется равенство двух строк. В последнем варианте условия проверяется существование файла. Если перед условием записывается ключевое слово NOT, результат проверки условия инвертируется (меняется на противоположный). В качестве команды можно указывать любую команду IBM OS/2. PAUSEОператор PAUSE приостанавливает вывод результата интерпретации командного файла на экран. При этом появляется следующее сообщение: Press any key when ready... REMОператор REM отмечает строку как комментарий. В процессе интерпретации командного файла строки комментария пропускаются. SHIFTПри помощи этой команды можно выполнить сдвиг
параметров. Это может потребоваться в том случае,
когда нужно обработать более 10 параметров.
Аналогичная команда имеется и в операционной
системе DOS. |