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

== hello ==
%VARpriv=%COOKIE='D:\Program Files\The Bat!\privety2.txt'%-
%IF:"%ToFName"="All":%-
"%VARpriv=%COOKIE='D:\Program Files\The Bat!\hiall.txt'"%-
%IF:"%OToFName"<>"":%-
"%VARpriv=%COOKIE='D:\Program Files\The Bat!\privety3.txt'"%-
%SETPATTREGEXP="<(\S{1,20})>"%REGEXPBLINDMATCH="%V ARpriv"%-
%VARexch="%LOWER='%SUBPATT=""1""'"%-
%IF:"%VARexch"<>"":"%QINCLUDE='prec'"%-
%VARpriv
== hello ==

== prec ==
%IF:"%VARexch"="rusname":"%-
%SETPATTREGEXP=""(?i)(.*)(?:<rusname>)(.*)""%-
%REGEXPBLINDMATCH=""%VARpriv""%-
%VARpriv='%SUBPATT=""1""%QINCLUDE=""rusname""%SUBP ATT=""2""'"%-
%-
%IF:"%VARexch"="_rusname_":"%-
%SETPATTREGEXP=""(?i)(.*)(?:<_rusname_>)(.*)""%-
%REGEXPBLINDMATCH=""%VARpriv""%-
%VARpriv='%SUBPATT=""1""_%QINCLUDE=""rusname""_%SU BPATT=""2""'"%-
%-
%IF:"%VARexch"="3":"%-
%SETPATTREGEXP=""(?i)(.*)(?:<3>)(.*)""%-
%REGEXPBLINDMATCH=""%VARpriv""%-
%VARpriv='%SUBPATT=""1""%QINCLUDE=""rustoname""%SU BPATT=""2""'"%-
%-
%IF:"%VARexch"="12":"%-
%SETPATTREGEXP=""(?i)(.*)(?:<12>)(.*)""%-
%REGEXPBLINDMATCH=""%VARpriv""%-
%VARpriv='%SUBPATT=""1""/%QINCLUDE=""rusname""/%SUBPATT=""2""'"%-
%-
%SETPATTREGEXP="<(\S{1,20})>"%REGEXPBLINDMATCH="%V ARpriv"%-
%VARexch="%LOWER='%SUBPATT=""1""'"%-
%IF:"%VARexch"<>"":"%QINCLUDE='prec'"%-
== prec ==

В данном примере описывается 4 тега, но модифицировать это можно по вкусу. Тегом явлется любая до 20и символов беспробельная строка заключенная в символы <>.
Добавление новых тегов осуществлеется добавлением новых строк в начало второго шаблона вида:
%IF:"%VARexch"="newtag":"%-
%SETPATTREGEXP=""(?i)(.*)(?:<newtag>)(.*)""%-
%REGEXPBLINDMATCH=""%VARpriv""%-
%VARpriv='%SUBPATT=""1""%QINCLUDE=""newtaginterrup t""%SUBPATT=""2""'"%-
%-

Только важно! Что в данной реализацие тэги задаются только в нижнем регистре в самих шаблонах, но зато потом не важно в каком они виде лежат в файле.
Еще важно! Что если в файле будет присутствовать не описаный тэг, то бат вылетит в следствии зацикливания макроса.

так же данная реализация служит для вставления приветствий и берет строки из 3х разных файлов, соответственно когда пишешь to: All, и разные для ответов на сообщения которые уже являются ответом и не являются.