
1. Назначение

Утилита EXTCOM предназначена для расширения возможностей команд по
обработке групп файлов.

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

EXTCOM не  накладывает ограничений  на  выполняемые  команды.  Это
могут быть  внутренние команды  DOS, исполняемые файлы типов com и
exe,  а  также  файлы  пакетной  обработки  типа  bat.  Вы  можете
переназначать стандартные файлы выполняемых команд символами >, <,
>>, |.

Обрабатываемые файлы  могут находиться  в разных  каталогах  и  на
разных  устройствах.   Возможна  избирательная   их  выборка   для
обработки по  атрибутам "только  для чтения", "архивный" и другим.
Вы можете определить очередность обработки файлов в соответствии с
лексикографическим порядком  их имен и расширений по возрастанию и
убыванию. При  необходимости Вы  можете также  строить производные
имена из имен исходных (обрабатываемых) файлов.

ПРИМЕР. Предположим,  что некоторая  программа decode осуществляет
перекодировку файла  (например,  из  основной  кодовой  таблицы  в
альтернативную). При  запуске программа  decode  воспринимает  два
аргумента - имя входного файла и имя выходного файла:

   decode <вх. файл> <вых. файл>

Вам нужно  произвести перекодировку всех файлов с расширением txt,
которые имеются в текущем каталоге и всех файлов с расширением doc
из подкаталога  DOC. При  этом Вы  хотите поместить результирующие
файлы в текущий каталог и присвоить им имена исходных файлов, но с
расширением alt.

При использовании  EXTCOM, Вы  выполните всю  эту работу, запустив
decode по команде

   extcom "decode &f &n.alt" *.txt DOC\*.doc


2. Принципы работы

По принципу  работы EXTCOM  объединяет  в  себе  макропроцессор  и
интерпретатор командных строк.

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

Образец -  это  строка,  аналогичная  по  форме  командной  строке
запуска выполняемой  команды. В образце, как и в командной строке,
задаются имя  команды и  ее аргументы. От обычной командной строки
образец отличается  тем, что  в нем  вместо аргументов указываются
специальные двухсимвольные  последовательности - &-макросы. EXTCOM
использует образец  для подстановки в него файлов. При подстановке
в образец  некоторого файла, макросы заменяются именем или другими
реквизитами этого файла - в зависимости от вида макроса. Например,
макрос &n  заменяется на имя файла, макрос &e - на его расширение,
&f -  на полное  имя файла  и т.д.  Результатом такой  подстановки
является выполняемая  командная строка;  в качестве  аргументов  в
этой строке  выступают имя  или  другие  реквизиты  подставляемого
файла.

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

ПРИМЕР. Для  иллюстрации  работы  EXTCOM  вернемся  к  предыдущему
примеру.  Если   в  текущем   каталоге  имеются  файлы  book1.txt,
book2.txt, book3.txt, а в подкаталоге DOC - prog1.doc и prog2.doc,
то в результате запуска

   extcom "decode &f &n.alt" *.txt DOC\*.doc

утилита EXTCOM построит и выполнит командные строки

   decode book1.txt book1.alt
   decode book2.txt book2.alt
   decode book3.txt book2.alt
   decode DOC\prog1.doc prog1.alt
   decode DOC\prog2.doc prog2.alt


3. Форматы запуска

Утилита EXTCOM может быть запущена двумя различными способами.

При запуске  первым способом  Вы задаете образец и список файлов в
командной строке. Формат запуска EXTCOM для этого случая:

extcom  [<ключи>] "<образец>" <шаблон файлов> [<шаблон файлов>...]    
            |          |      |                                  |    
            |          |      |<-------------------------------->|    
            |          |      \- список обрабатываемых файлов;   
            |          \-------- образец для выполняемой команды;     
            \------------------- режимы выполнения команды; 

Режимы выполнения команды задаются ключами -b, -h, -a, -d, -e, -s,
-f. Ключи могут располагаться в любом месте командной строки: в ее
начале, конце,  а также между шаблонами файлов. Порядок следования
ключей произволен.

Образец команды  должен быть  заключен в кавычки (") или апострофы
(').  За  образцом  следует  перечень  шаблонов,  задающих  список
подлежащих обработке файлов.

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

При втором  способе запуска  Вы можете  задать утилите  EXTCOM для
выполнения сразу  несколько команд.  Командная  строка  для  этого
случая имеет формат:

extcom  [-b] [-h] @fname 
        |       |    |   
        \---|---/    \---- имя файла команд; 
            \------------- режимы выполнения EXTCOM;   

При этом способе в командной строке можно указывать ключи -b и -h.
Их расположение  и порядок  следования также произвольны. Действие
этих ключей распространяется на все выполняемые утилитой команды.

Аргумент fname  задает  имя  файла  команд;  расширение  файла  по
умолчанию -  ext. Файл  команд является  обычным текстовым  файлом
формата ASCII.  Он может содержать строки двух видов: комментариев
и команд.

Строки комментариев  начинаются с  символа точки с запятой (;), за
которым может  следовать любая последовательность символов. Символ
(;) не  обязательно должен располагаться в первой позиции строки -
перед ним Вы можете набрать пробелы и знаки табуляции.

Образец команды  и список  обрабатываемых файлов задаются в строке
команды. Ее  формат совпадает  с форматом  строки  аргументов  для
первой формы запуска EXTCOM:

   [<ключи>] "<образец>" <шаблон файлов> [<шаблон файлов>...]    
       |          |      |                                  |    
       |          |      |<-------------------------------->|    
       |          |      \- список обрабатываемых файлов;   
       |          \-------- образец для выполняемой команды;     
       \------------------- режимы выполнения команды; 

Строка команды также может начинаться не с первой позиции строки.

Ключ  -b   не  может  быть  задан  в  строке  команды:  этот  ключ
предназначен только для командной строки EXTCOM. Внутри образца Вы
можете свободно  использовать символы  >, <, >>, | - в этом случае
они переназначат стандартные файлы выполняемой по образцу команды.

Количество строк в файле команд не ограничивается.

ПРИМЕР. При  помощи файла  команд tcat.ext  можно слить содержимое
текстовых файлов  текущего каталога  с расширением  txt. Результат
слияния записывается  в конец  файла text.cat.  Файлы сливаются  в
порядке лексикографического возрастания их имен.

Возможное содержимое файла tcat.ext:

   ; Файл tcat.ext;
   ; Вызов extcom @tcat упорядочит и сольет файлы *.txt
   ; в файле text.cat выполнением стандартной команды type
   ; для группы файлов;
   "type &f >>text.cat" *.txt -sn


4. Описание ключей

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


           Ключ -b

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

Если Вы  используете ключи  -h, -d,  -e или  -a, то  EXTCOM, кроме
выполнения построенных по образцу командных строк, выполняет также
некоторые дополнительные действия. Это: смена текущих устройства и
каталога, проверка  кода завершения  команды и др. В выведенной по
ключу -b  последовательности, эти действия EXTCOM показаны функци-
онально  эквивалентными   вызовами  команд   DOS  echo,   cd,   if
errorlevel, goto и attrib.

Ключ -b  можно  использовать  для  проверки  выполняемых  утилитой
EXTCOM действий. Вы можете также записать и использовать выводимые
последовательности командных  строк в  виде пакетных  файлов  типа
bat.

Ключ -b можно задавать только в командной строке запуска EXTCOM.

ПРИМЕР. Если выполнить команду с ключом -b:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -b

то EXTCOM выведет на экран последовательность команд

   decode book1.txt book1.alt
   decode book2.txt book2.alt
   decode book3.txt book3.alt
   decode DOC\prog1.doc prog1.alt
   decode DOC\prog2.doc prog2.alt

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

   extcom "decode &f &n.alt" *.txt DOC\*.doc -b >tdecod.bat


           Ключ -h

Обычно EXTCOM  показывает  все  выполняемые  командные  строки  на
экране дисплея.  Ключ -h  подавляет эту индикацию строк на экране.
Действие ключа  аналогично действию  команды @echo  off в пакетных
batch-файлах.

ПРИМЕР. При запуске с ключом -h:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -h

EXTCOM выполнит действия

   @echo off
   decode book1.txt book1.alt
   decode book2.txt book2.alt
   decode book3.txt book3.alt
   decode DOC\prog1.doc prog1.alt
   decode DOC\prog2.doc prog2.alt


           Ключ -d

По ключу  -d EXTCOM  сначала делает  текущими устройство и каталог
очередного файла,  а затем  выполняет построенную  для этого файла
командную строку.  После выполнения  строки EXTCOM восстанавливает
прежние текущие устройство и каталог.

ПРИМЕР. Вам  нужно произвести  перекодировку, но  на этот  раз  Вы
решили поместить  полученные файлы  в каталоги  с  исходными.  Эту
работу можно выполнить, задав при запуске ключ -d:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -d

Запущенная таким  образом,  утилита  EXTCOM  построит  и  выполнит
команды

   decode book1.txt book1.alt
   decode book2.txt book2.alt
   decode book3.txt book3.alt
   cd DOC
   decode prog1.doc prog1.alt
   decode prog2.doc prog2.alt
   cd ..


           Ключ -e

Формат этого  ключа: -e<число>.  Если задан  ключ  -e,  то  EXTCOM
проверяет код завершения выполняемых команд. После проверки EXTCOM
продолжает выполнение  только в  том случае,  если полученный  код
меньше заданного ключом значения. Обычно (без ключа -e) код завер-
шения не проверяется.

ПРИМЕР. Этот пример показывает действие ключа -e. EXTCOM выполняет
программу decode, пока ее код завершения меньше 2:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -e2

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

   decode book1.txt book1.alt
   if errorlevel 2 goto :break
   decode book2.txt book2.alt
   if errorlevel 2 goto :break
   decode book3.txt book3.alt
   if errorlevel 2 goto :break
   decode DOC\prog1.doc prog1.alt
   if errorlevel 2 goto :break
   decode DOC\prog2.doc prog2.alt
   if errorlevel 2 goto :break
   goto :end
   :break
   echo Завершение по коду возврата
   :end


           Ключ -s

Формат ключа: -sn[r], -se[r]. Ключ -s задает очередность обработки
файлов в  соответствии с лексикографическим порядком их имен. Если
Вы используете  ключ -s, то EXTCOM сортирует список обрабатываемых
файлов перед  тем, как  начать строить  для них  командные строки.
Опция n  задает  сортировку  файлов  списка  по  именам,  e  -  по
расширениям. Опция  r задает  сортировку  в  обратном  (убывающем)
порядке.

ПРИМЕР. По команде:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -snr

EXTCOM перекодирует  файлы в  порядке лексикографического убывания
их имен:

   decode DOC\prog2.doc prog2.alt
   decode DOC\prog1.doc prog1.alt
   decode book3.txt book3.alt
   decode book2.txt book2.alt
   decode book1.txt book1.alt


           Ключ -a

Если  задан   ключ  -a,  то  EXTCOM  сначала  выполняет  очередную
построенную командную  строку, а после этого обнуляет архивный бит
подставленного в  эту строку  файла. Если  Вы задали ключи -a и -e
вместе, то  EXTCOM обнуляет  архивный бит  только после  успешного
выполнения команды,  т.е. если  ее код завершения меньше заданного
ключом -e значения.

ПРИМЕР. По команде с ключом -a:

   extcom "decode &f &n.alt" *.txt DOC\*.doc -a

EXTCOM перекодирует и обнулит архивные биты файлов:

   decode book1.txt book1.alt
   attrib -A book1.txt
   decode book2.txt book2.alt
   attrib -A book2.txt
   decode book3.txt book3.alt
   attrib -A book3.txt
   decode DOC\prog1.doc prog1.alt
   attrib -A DOC\prog1.doc
   decode DOC\prog2.doc prog2.alt
   attrib -A DOC\prog2.doc


           Ключ -f

Формат: -f[r][h][s][a].  Ключ задает  атрибуты включаемых в список
по указанным шаблонам файлов:

   r - файлы только для чтения;
   h - скрытые файлы;
   s - системные файлы;
   a - архивные файлы.

Обычно (ключ  -f не  задан), EXTCOM включает в список все файлы по
заданным шаблонам,  кроме тех,  которые  помечены  как  скрытые  и
системные. При  задании ключа -f с атрибутами h и s эти файлы тоже
включаются в  список. При  задании атрибутов  a и  r EXTCOM строит
список только  из тех файлов, которые имеют установленный архивный
бит или помечены как только для чтения.

ПРИМЕР. Предположим, что у файлов book1.txt, book3.txt и prog1.doc
установлены, а  у book2.txt  и prog2.doc  сброшены архивные  биты.
Тогда при запуске

   extcom "decode &f &n.alt" *.txt DOC\*.doc -fa

EXTCOM построит и выполнит команды

   decode book1.txt book1.alt
   decode book3.txt book3.alt
   decode DOC\prog1.doc prog1.alt

При создании,  а также  изменении  файлов,  DOS  устанавливает  их
архивные биты в 1-цу. С помощью ключей -fa и -a можно организовать
такую работу с некоторой группой файлов, при которой:  
а) требуется  обрабатывать только вновь созданные или включенные в
группу файлы;  
б) производить  повторную обработку  только для тех файлов группы,
которые были изменены с момента последной обработки.


           Совместное использование ключей

EXTCOM не  накладывает  ограничений  на  совместное  использование
ключей: Вы можете свободно использовать их в любых сочетаниях.

ПРИМЕР. Вам требуется произвести перекодировку файлы и при этом:

- прервать  перекодировку, если  код возврата  decode будет равным
или превысит значение 3; 
- результирующие файлы поместить в каталоги с исходными файлами; 
- перекодировать только файлы с установленными архивными битами; 
- у перекодированных файлов сбросить архивные биты;    
- подавить индикацию выполняемых команд.

Эта работы будет выполнена по команде

   extcom "decode &f &n.alt" *.txt DOC\*.doc -e3 -d -fa -a -h

Команды и  действия, выполняемые EXTCOM (архивные биты установлены
у файлов book2.txt, prog1.doc и prog2.doc):

   @echo off
   decode book2.txt book2.alt
   if errorlevel 3 goto :break
   attrib -A book2.txt
   cd DOC
   decode prog1.doc prog1.alt
   if errorlevel 3 goto :break
   attrib -A prog1.doc
   decode prog2.doc prog2.alt
   if errorlevel 3 goto :break
   attrib -A prog2.doc
   goto :end
   :break
   echo Завершение по коду возврата
   :end
   cd ..


5. Описание макросов

В  этом  разделе  приводится  описание  макросов  утилиты  EXTCOM.
Используемые здесь  примеры также  в основном  ссылаются на пример
использования программы  перекодировки decode из раздела 'Принципы
работы'.

Макросы являются  специальными  двухсимвольными  последовательнос-
тями, которые  начинаются с  символа амперсенд  (&) и  за  которым
следует буква  или цифра.  Макросы  предназначены  для  построения
образцов команд; они определяют формат и значение строк аргументов
в получаемых по образцу командных строках.

Макросы EXTCOM делятся на два типа: файловые и дополнительные.

К файловым  макросам относятся  &n, &e, &d, &f, &p, &g, &l, &1-&8,
&x, &y,  &z.  Каждый  из  этих  макросов  заменяется  на  значение
соответствующего реквизита подставляемого в образец файла.

Дополнительными макросами  являются &c, &w, &i, &j. Они заменяются
на некоторые общие для EXTCOM и выполняемой команды значения.


           Макросы &n и &e

Макрос &n обозначает имя файла, а макрос &e - его расширение. Если
файл не имеет расширения, то значением &e является пустая строка.

ПРИМЕР. Для  файла D:\DOC\prog1.doc  макрос &n  заменяется  именем
prog1, а &e заменяется строкой doc.


           Макросы &d и &p

Макросы &d  и &p  обозначают каталог файла. Каталог &d указывается
"относительно" текущего  каталога, каталог  &p -  в полной  форме:
<устройство>:\<цепочка  каталогов>.   Строка  имени   каталога  не
содержит в конце символа слэша (\).

Если файл  расположен на устройстве, отличном от текущего, каталог
&d также указывается в полной форме.

ПРИМЕР. Вам  нужно произвести перекодировку и поместить полученные
файлы в  каталоги с  исходными. Для  этого Вы  можете явно  задать
расположение файлов  результата в  каталоге, обозначаемом макросом
&d:

   extcom "decode &f &d\&n.alt" *.txt DOC\*.doc

EXTCOM выполнит команды

   decode book1.txt .\book1.alt
   decode book2.txt .\book2.alt
   decode book3.txt .\book3.alt
   decode DOC\prog1.doc DOC\prog1.alt
   decode DOC\prog2.doc DOC\prog2.alt

Вы можете также использовать макрос &p:

   extcom "decode &f &p\&n.alt" *.txt DOC\*.doc

Если текущим является каталог D:\, то EXTCOM выполнит команды

   decode book1.txt D:\book1.alt
   decode book2.txt D:\book2.alt
   decode book3.txt D:\book3.alt
   decode DOC\prog1.doc D:\DOC\prog1.alt
   decode DOC\prog2.doc D:\DOC\prog2.alt

ПРИМЕР. Этот  пример поясняет "относительную" зависимость значения
макроса &d  от текущего  каталога. При  запуске задан  ключ  -d  и
EXTCOM, выполняя построенные команды, призводит изменение текущего
каталога. Соответственно изменяется значение макроса &d:

   extcom "decode &f &d\&n.alt" *.txt DOC\*.doc -d

Команды и действия, выполняемые EXTCOM:

   decode book1.txt .\book1.alt
   decode book2.txt .\book2.alt
   decode book3.txt .\book3.alt
   cd DOC
   decode prog1.doc .\prog1.alt
   decode prog2.doc .\prog2.alt
   cd ..


           Макрос &f

Макрос &f  обозначает полное  имя файла.  Макрос является аналогом
строки макросов &d\&n.&e.


           Макросы &g и &l

Макрос &g  обозначает  порядковый  номер  файла  в  списке  файлов
обработки. Макрос  &l - порядковый номер файла внутри подсписка по
тому шаблону,  которым был  определен этот файл. Нумерация &g и &l
соответствует заданному режиму сортировки файлов ключом -s.

Эти макросы  могут быть  использованы при  построении  производных
имен.

ПРИМЕР. Вам  нужно перекодировать файлы и присвоить результирующим
файлам имена  вида alt1,  alt2, ... . Возможный вариант выполнения
работы с использованием макроса &g:

   extcom "decode &f alt&g" *.txt DOC\*.doc

EXTCOM построит и выполнит команды

   decode book1.txt alt1
   decode book2.txt alt2
   decode book3.txt alt3
   decode DOC\prog1.doc alt4
   decode DOC\prog2.doc alt5

ПРИМЕР. Вам  нужно перекодировать файлы и присвоить результирующим
файлам имена  вида txt1.alt,  txt2.alt, ... и doc1.alt, doc2.alt.,
... . Возможный вариант выполнения с использованием макроса &l:

   extcom "decode &f &e&l.alt" *.txt DOC\*.doc

EXTCOM построит и выполнит команды

   decode book1.txt txt1.alt
   decode book2.txt txt2.alt
   decode book3.txt txt3.alt
   decode DOC\prog1.doc doc1.alt
   decode DOC\prog2.doc doc2.alt


           Макросы &1-&8, &x, &y, &z

Макросы &1,  &2, ...,  &8 обозначают соответственно 1-ю, 2-ю, ...,
8-ю буквы  имени, а  макросы &x,  &y, &z  - 1-ю,  2-ю и  3-ю буквы
расширения файла.  Значения недостающих  букв имени  и  расширения
принимаются равными пустой строке.

Макросы предназначены для образования производных имен.

ПРИМЕР. Следующий  запуск EXTCOM  произведет обращение имен файлов
текущего каталога:

   extcom "ren &f &8&7&6&5&4&3&2&1.&e" *.*


           Макросы &c и &w

Макросы &c  и &w  обозначают  каталог,  который  был  текущим  при
запуске утилиты  EXTCOM. Макрос  &c  указывает  значение  каталога
"относительно" текущего  каталога при  выполнении команд, а &w - в
полной  форме:  <устройство>:\<цепочка  каталогов>.  Строка  имени
каталога не содержит в конце слэша.

Если  текущее  устройство  изменилось  и  отличается  от  текущего
устройства при  запуске EXTCOM,  значение &c  также указывается  в
полной форме.


           Макросы &i и &j

Макрос  &i   является  счетчиком:   он  заменяется  на  количество
использований при  построении по  образцу  командных  строк,  т.е.
увеличивается на  единицу  при  каждом  использовании.  Макрос  &j
обозначет последнее значение счетчика &i.

Макросы могут быть использованы для образования производных имен.

Пример использования  счетчика  &i  приводится  дальше  в  разделе
'Образец команд'.


6. Список файлов

Список  содержит   подлежащие   обработке   файлы.   Он   задается
перечислением  шаблонов  файлов.  Шаблон  представляет  собой  имя
файла, содержащее  стандартные  метасимволы  DOS  *  и  ?.  Вместо
шаблона можете  также указывать  обычное имя  файла. Файлы  списка
могут находится в разных каталогах и на разных устройствах.

С помощью  ключа -f  Вы  можете  управлять  включением  задаваемых
шаблонами файлов в список.


7. Образец команд

Образец является  своего рода  формой, в  соответствии  с  которой
EXTCOM строит выполняемые командные строки. Образец задает команду
и в некотором общем виде строку аргументов для этой команды.

Командой может быть: внутренняя команда DOS, исполняемый файл типа
com или  exe, пакетный batch-файл. Вы можете явно задавать каталог
выполняемой программы.

За именем  команды следует  строка аргументов. В строке аргументов
образца наряду с другими должны обязательно присутствовать макросы
&f или &n.

EXTCOM строит выполняемые командные строки с помощью подстановки в
образец файлов  из обрабатываемого списка. Во всех приводимых выше
примерах   рассматривались   так   называемые   простые   образцы.
Выполняемая командая  строка получается  из простого  образца  как
результат одной подстановки.

Кроме простых, утилита EXTCOM может работать с образцами, имеющими
циклическую  подстановку.   Циклическая  подстановка   заключается
внутрь фигурных  скобок  {  и  }.  Она  также  должна  обязательно
содержать макросы &f или &n.

Образец с  циклической подстановкой  отличается тем, что позволяет
строить командные  строки, которые содержат результаты подстановки
нескольких  файлов.   Результаты  этих  подстановок  включаются  в
получаемую командную строку последовательно слева направо.

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

ПРИМЕР. Предположим,  что в текущем каталоге имеются файлы m1.obj,
m2.obj, m3.obj,  которые Вы  хотите поместить  в библиотеку  mylib
утилитой-библиотекарем tlib. Это можно сделать по команде

   extcom "tlib mylib +&f" *.obj

При этом EXTCOM построит и выполнит последовательность
   tlib mylib +m1.obj
   tlib mylib +m2.obj
   tlib mylib +m3.obj

Это же можно сделать и циклической подстановкой:

   extcom "tlib mylib{ +f}" *.obj

На этот раз EXTCOM построит и выполнит строку

   tlib mylib +m1.obj +m2.obj +m3.obj

Возможен  и  более  сложный  вариант  образцов.  EXTCOM  разрешает
использовать слева  или справа  от цикла  (но не  с  обоих  сторон
одновременно) файловые  макросы точно  так же,  как  и  в  простом
образце. Для  дополнительных же  макросов нет  ограничений: можете
свободно их использовать в любых местах внутри и снаружи циклов.

ПРИМЕР. Вы  хотите упорядоченно  слить все  файлы  *.txt  текущего
каталога в файл text.cat. Это можно сделать по команде

   extcom "copy &f{+&f} text.cat" *.txt -sn

Если в  текущем каталоге имеется достаточно много файлов *.txt, то
EXTCOM построит  и выполнит  несколько командных строк (по причине
необходимости их  ограничения длиной  122 байта).  В  этом  случае
результирующий файл  text.cat будет содержать лишь последнюю часть
того, что нужно. В такой ситуации можно построить (для того, чтобы
затем слить) несколько файлов с именами text1.cat, text2.cat, ...:

   extcom "copy &f{+&f} text&i.cat" *.txt

Символы &,  {, },  ', ",  встреченные в  образцах,  считаются  его
частью. Если  Вы хотите включить их в выполняемую команду, ставьте
перед ними в образцах символ &.


8. Выполнение построенных командных строк

Если в  построенной командной  строке указана  внутренняя  команда
DOS,  файл   с  расширением   bat,  или  же  присутствуют  символы
переназначения >,  <, >>, |, утилита EXTCOM выполняет такую строку
путем вызова  командного процессора  DOS (обычно это COMMAND.COM).
Исполняемые файлы  типов com  и exe  при отсутствии переназначения
выполняются непосредственно самой утилитой.

Поиск выполняемой  программы  производится  согласно  стандартному
алгоритму DOS:  если не  указан явно  каталог программы, то EXTCOM
ищет  программу   сначала  в  текущем  каталоге,  затем  в  списке
каталогов системной  переменной PATH.  Если  не  задан  явно  тип,
сначала ищутся файлы с расширением com, затем exe и, наконец, bat.
