ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



ГЛАВА 3   ПАКЕТНЫЕ ФАЙЛЫ

     __________________________________________________________

     В этой главе освещены следующие темы:

     - Создание пакетного файла
     - Выполнение файла autoexec.bat
     - Параметры пакетного файла
     - Запуск пакетного файла

     __________________________________________________________

     Чтобы  избежать  утомительного набора часто повторяющейся
последовательности команд, вы можете поместить  эти  командные
строки  в  файл и присвоить последнему расширение .bat. Теперь
вам достаточно набрать имя этого файла и  нажать  ввод,  чтобы
содержащиеся  в  пакетном файле команды начались выполняться в
той последовательности, в которой они следуют в пакетном файле
(порядок следования можно сделать условным).
     Создать пакетный файл  можно  с  помощью  к-л  редактора,
например, Edlin.
     В качестве последней командной строки файла можно указать
имя другого пакетного файла.
     Вы  можете помещать в начало командных строк символ @ для
отмены вывода командной строки на  экран  (эхо)  во  время  ее
исполнения.
     Разрешается использование таких средств, как < > >> и |.
     Установка маршрута и дисковода в одной строке затрагивает
и  все  последующие  строки  в  файле. То же можно сказать и о
среде.
     Если существуют одновременно несколько внешних  команд  с
одинаковым  именем,  то они выполняются в следующем порядке (в
зависимости от расширения):

     .com
     .exe
     .bat
 

                   Файл autoexec.bat

     Этот  пакетный  файл  также  содержит  последовательность
командных строк, но отличается от обычных пакетных файлов тем,
что его выполнение начинается каждый раз, когда  вы  включаете
свой   компьютер.   MS-DOS   автоматически   после   включения
компьютера ищет этот файл в текущем каталоге, и если  находит,
немедленно  приступает  к  его  выполнению. Если такой файл не
найден, то на экран выводится  стандартный  запрос  ситемы  на
ввод текущей даты и времени.
     Если   вы   создаете  файл  autoexec.bat,  то  вы  должны
поместить его в корневой каталог диска MS-DOS.
 

                             - 344 -
 
 

     Наиболее   простой   способ   создания   пакетного  файла

     приводится ниже:

     - Введите командную строку:

     copy con имя_пакетного_файла.bat

     - Нажмите  ВВОД.  Теперь вводимая с консоли (клавиатура)
       информация заносится в файл.

     - Введите командную строку и нажмите ВВОД.
     - Введите командную строку и нажмите ВВОД.
     - Введите командную строку и нажмите ВВОД.
     - ... и т.д.
     - После  введения  последней  командной  строки  нажмите
       одновременно клавиши Ctrl и Z (CONTROL+Z).
     - Нажмите ВВОД.
     - На экране появится сообщение:

     1 File(s) copyied
     (Скопирован 1 файл )

     Теперь для запуска созданного пакетного файла введите его
имя (расширение не обязательно) и нажмите ВВОД.

     Дополнительную    гибкость    пакетному   файлу   придают
формальные параметры, реальные значения которых  подставляются
в  ходе выполнения пакетного файла. Эти параметры имеют вид %1
- %9, например  dir %1 > %2.  Параметр  %0  всегда  заменяется
системой  на  имя  дисковода  (если  указано)  и имя пакетного
файла. Если вы хотите использовать больше  десяти  параметров,
то  следует  обратиться к описанию команды shift в этой главе.
Если знак процента является частью имени к-л  файла,  то  этот
знак необходимо указывать дважды:  abc%%d.exe.
     Помимо  десяти  числовых  формальных параметров вы можете
использовать  именованные  формальные  параметры,  указываемые
между  двумя  знаками  процентов:  %parameter%.  Отличие их от
числовых  параметров  заключается  в  том,  что  их   реальные
значения   указываются  вами  не  в  командной  строке  вызова
пакетного файла, а в среде (с  помощью  команды  set),  откуда
MS-DOS  будет  выбирать  их  и  подставлять  вместо формальных
параметров.
     При  вводе  командной  строки  вызова   пакетного   файла
необходимо  помнить,  что  последовательность  в  ней реальных
значений  для числовых параметров этого пакетного файла должна
соответствовать нумерации этих числовых параметров.
 

                             - 345 -
 
 

              Команды пакетной обработки

     Ниже  приведены  команды   пакетной   обработки,   полное
описание которых будет дано ниже в этой главе:

     Команда     Значение
     __________________________________________________________
     call        Вызов  одного пакетного файла из другого, без
                 завершения последнего.
     echo        Вывод   или   отмена  вывода  эха  или  вывод
                 текущего состояния.
     for         Выполнение команды для группы файлов.
     goto        Переход на указанную метку.
     if          Выполнение команды при наличия некоторого
                 условия.
     pause       Пауза в процессе выполнения файла.
     rem         Вывод коментария.
     shift       Увеличение количества формальных параметров.
     __________________________________________________________

     Все  команды  пакетной  обработки  являются  резидентными
     (внутренними).
 
 
 
 
 
 

     __________________________________________________________
     CALL                                                   (I)

     Цель:
          Вызов  одного пакетного файла из другого, без
          завершения последнего.

     Синтаксис:

     call [дисковод:][маршрут] имя_пакетного_файла [команда]

     где:

     команда - команда, выполняемая после выполнения пакетного
               файла.

     Комментарий:
     При  указании  имени пакетного файла необходимо указывать
расширение .bat. По выполнении пакетного файла  возобновляется
выполнение  вызывавшего  пакетного файла с команды указанной в
командной строке вызова.  Если  опция  "команда"  опущена,  то
выполнение возобновляется с команды, непосредственно следующей
за командой call.

     Примечание:
     Нельзя  использовать символы переадресации ввода/вывода с
командой  Call.  Пакетный  файл  может  выполнять  рекурсивное
обращение  к  самому  себе,  при  условии,  что  предусмотрено
условие окончания.
 

                             - 346 -
 
 
 
 
 
 
 

     __________________________________________________________
     ECHO                                                   (I)

     Цель:
          Вывод   или   отмена  вывода  эха  или  вывод
          текущего состояния.

     Синтаксис:

          echo [on]

          или

          echo [off]

          или

          echo [сообщение]

     Комментарий:
     Обычно при выполнении  команд  соответствующие  командные
строки  выводятся  на  экран (эхо). Отменить вывод эха можно с
помощью опции off, а восстановить с помощью опции on. Если  вы
введете  команду echo без опций, то на экране появится текущее
значение (on или off).
     Опцию "сообщение" можно применять для вывода сообщений на
экран во время выполнения пакетного файла.
     Символ @, помещенный в начало командной строки,  отменяет
эхо этой строки.
 
 
 
 
 
 

     __________________________________________________________
     FOR                                                    (I)

     Цель:
          Выполнение команды для группы файлов.

     Синтаксис:

          for %%cимвол in группа do команда
          (для пакетной обработки)

          for %cимвол in группа do команда
          (для интерактивной обработки)

     Комментарий:
     Описываема команда присваивает  каждому  элементу  группы
переменную  %%символ.  "Символ"  не  должен быть 0-9, чтобы не
совпадать с %0-%9. "Группа" имеет следующий формат:

                             - 347 -
 
 

     ( элемент элемент ...)

     или

     если элемент (имя файла) содержит символы заполнители, то
все элементы,  кроме  этого  элемента,  игнорируются,  а  всем
соответствующим файлам присваивается переменная %%символ.

     Пример:
     Следующая команда присваивает переменную %%f всем  файлам
с расширением .txt и распечатывает их:

     for %%f in (*.txt) do print %%f

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

     __________________________________________________________
     GOTO                                                   (I)

     Цель:
          Переход на указанную метку, т.е. переход к выполнению
          командной строки, "помеченной" указываемой меткой.
 

     Синтаксис:

          goto [:]метка

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

     Примечание:
     Любая строка пакетного файла, начинающаяся с символа (:),
игнорируется во время выполнения пакетного файла:

     :begin
     echo off
     format a: /s
     if errorlevel 0 goto end
     echo ОШИБКА ФОРМАТИРОВАНИЯ
     :end
     echo КОНЕЦ
 
 
 
 
 
 

                             - 348 -
 
 

     __________________________________________________________

     IF                                                     (I)

     Цель:
          Выполнение команды при наличия некоторого
          условия.

     Синтаксис:

          if [not] errorlevel код_завершения команда

          или

          if [not] строка1 = = строка2 команда

          или

          if [not] exist имя_файла команда

     Комментарий:
     Команда  выполняется, а не игнорируется, если указываемое
условие истинно. Описание условий приводится ниже:

     код_завершения   -     Число.  При его совпадении с кодом
                            завершения   предыдущей   команды,
                            выполненной командным процессором,
                            или  при  большем по значению коде
                            завершения,   условие    считается
                            истинным.

     строка1 = = строка2 -  Условие считается истинным, только
                            если    строки   идентичны   после
                            подстановки параметров. Строки  не
                            могут содержать такие разделители,
                            как запятая, точка с запятой, знак
                            равно или пробел.

     имя_файла              Условие считается истинным, только
                            если указанный файл существует.

     Если   вы   укажете   опцию   [not],   то  команда  будет
выполняться, только если условие ложно:

     if not exist moifile.doc echo нет такого файла.
 
 
 
 
 

                             - 349 -
 
 

     __________________________________________________________
     PAUSE                                                  (I)

     Цель:
          Пауза в процессе выполнения файла.

     Синтаксис:
 

          pause [текст]

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

     Strike a key when ready ...
     (Когда будете готовы нажмите любую клавишу)

     Если   вы   нажмете  CONTROL+C,  то  на  экране  появится
следующий вопрос:

     Terminate batch job (Y,N)?
     (Прервать выполнение пакетного файла (Д/Н)? )

     Примечание:
     Если эхо отменено, то ни строка pause ни строка текста не
появятся на экране.
 
 
 
 
 

     __________________________________________________________
     REM                                                    (I)

     Цель:
          Вывод комментария.

     Синтаксис:

          rem [комментарий]

     Комментарий:
     В  строке  комментария  разрешены в качестве разделителей
только пробелы, символы табуляции и запятые.

     Примечание:
     Если эхо отменено, то строка комментария не выводится.
 
 
 
 
 
 
 

                             - 350 -
 

     __________________________________________________________
     SHIFT                                                  (I)

     Цель:
          Смещение формальных параметров пакетного файла.

     Синтаксис:

          shift

     Комментарий:
     С помощью команды shift вы можете получить доступ к более
чем десяти параметрам, т.е. те параметры, которые  следуют  за
десятым (%9) сдвигаются по одному к %9.
     Команду  shift  можно  использовать, даже если количество
параметров  меньше  десяти.  Обратите  внимание  на  то,   что
обратной  команды  shift  не  существует,  так например, вы не
сможете восстановить параметр %0, существовавший до сдвига.

     Пример:
     Следующая пакетная программа копирует все перечисленные в
командной строке файлы в указанный каталог:

     set todir = %1
     :one
     shift
     if "%1"=="" goto two
     copy %1 %todir%
     goto one
     :two
     set todir=
     echo конец

     Командная строка  описанного  выше  примера  будет  иметь
     формат:

     имя_пакетного_файла имя_каталога имя_файла имя_файла.....


© KOAP Open Portal 2000



?????? ???????????