Можно ли вставить в шаблон количество дней которое осталось до определенной даты. К примеру я планирую отправку письма каждый день и в шаблоне нужно чтобы вставлялась такая запись -------- До окончания срока осталось 5 дней. --------- И чтобы каждый день это количество дней становилось на единицу меньше. Ну ли чтобы высчитывалось сколько дней осталось до даты которую я задаю и это значение вставлялось в шаблон.
Можно достигнуть желаемого, например, при помощи плагина MyMacros которорый можно выудить из машины времени по этому адресу. Прикрутите его к Бату и добавьте в шаблон нового письма строку вида
Да, пожалуйста! Приятно когда хоть на что-то годен (на форуме). Вот страничка с евонными макросами. Кстати там и ссылка на закачку с Ritlabs. Правда размер отличается на байт по сравнению с тем, что я выложил на Dropbox (c archive.org), но сами tbp одинаковы. Кстати там и русская справка есть в виде help.ru.html. Она более пространная.
Скрытый текст
Строковые макросы
Разные макросы для работы со строками. %Chr Параметры
%Chr(номер символа) Описание
Символ соответствующий указанному ASCII коду. В интервале 1..256. Пример
%Chr("64" %CountLines Параметры
%CountLines(текст) Описание
Подсчитывает количество строк в тексте. Учитываются даже пустые строки. Пример
%CountLines("миллион алых роз из окна видишь ты" %CutHere Параметры
%CutHere Описание
Вставляет служебный символ "-- ", который должен находиться перед подписью ваших сообщений. Он нужен, чтоб в письмах ваших собеседников при ответе вам подпись из цитирования автоматически удалялась. Используйте этот макрос, чтоб пробел был вставлен наверняка. Пример
%CutHere %GetLine Параметры
%GetLine(номер строки, текст) %GetLine(номер строки, текст, число строк) Описание
Извлекает указанную строку из текста. Номер первой строки 1. Если строки с указанным номером не существует, макрос возвращает пустую строку. Третий параметр задает, сколько строк вернуть начиная с указанного Номера строки. Пример
%GetLine("2","Шла Маша по шоссе и сосала сушку!" %InputBox Параметры
%InputBox %InputBox(текст-приглашение) %InputBox(текст-приглашение, значение по умолчанию) Описание
Выводит окошко для ввода строки. Текст-приглашение это текст, который отобразится в окошке над полем ввода. Значение по умолчанию это то значение, которое будет введено исходно при открытии окна. Если в окне нажать Cancel, венётся также значение по умолчанию.
Внимание!!! Используйте этот макрос только в быстрых шаблонах, вызываемых вручную! Иначе The Bat! может зависнуть. Пример
%Numerical(число, шаблон 1, шаблон 2, шаблон 3) %Numerical(число, шаблон 1, шаблон 2 и 3) Описание
Анализирует число и подставляет его в один из шаблонов вместо символа "^n". Первый шаблон для чисел, заканчивающихся на 1, но не на 11. Второй — для чисел, заканчивающихся на 2, 3, 4, но не на 12, 13, 14. Третий — для остальных.
Если второй и третий шаблон одинаковые, третий можно не указывать. Пример
Вставляет текстовую строку состояния указанной ширины. Определённая часть строки закрашивается чёрными символами, остальная белыми.
Определить относительную длину чёрной полосы можно задав минимальное, максимальное и текущее значения, либо указав процент заполнения, как целое число от 0 до 100. Пример
%RegExp(регулярное выражение, текст) %RegExp(регулярное выражение, текст, маска) Описание
Выполняет поиск Регулярного выражения в Тексте и возвращает совпадение. Если в Регулярном выражении содержатся вложенные регулярные выражения в скобках, используйте Маску для доступа к ним. $1 в Маске заменится на первое вложенное регулярное выражение и т.д. Пример
%RegExp("\A(.+)@(.+)\Z","%FromAddr","Пользователь $1 на $2." %RegExpReplace Параметры
%RegExpReplace(регулярное выражение, текст, заменитель) Описание
Заменяет в Тексте все совпадения с Резулярным выражением на Заменитель. Пример
%SmartQuotes %SmartQuotes(уровень) %SmartQuotes(уровень, обрезать) Описание
Замена стандартному макросу %Quotes для цитирования исходного письма. В отличие от оригинала переформатирует цитирование так, чтоб между цитатами разного уровня была одна пустая строка, автоматически удаляет приветствия и подписи из цитируемого текста, удаляет старые цитаты.
Параметр Уровень задаёт, цитаты до какого уровня нужно оставлять (0 или отсутствие параметра — оставить все). Второй параметр Обрезать указывает, нужно ли обрезать приветствие и прощания из цитирования (по умолчанию нужно, 'no' — не нужно).
Чтоб настроить какие приветствия и прощания обрезать, зайдите в Свойства » Настройки… » Модули расширения, выберите MyMacros и нажмите Настроить. Например, слова могут быть такие:
Hello words: Привет Доброго времени суток Добрый день Доброе утро Добрый вечер Доброй ночи День добрый Утро доброе Вечер добрый вы писали ты писал здравствуй здраствуй hello you wrote wrote:
Goodbye words: -----Original Message----- ----- Original Message ----- -----Исходное сообщение----- ----- Исходное сообщение ----- С уважением ------------------------ Yahoo! Groups Sponsor --------------------~-- Пример
%SmartQuotes('2') %StrLen Параметры
%StrLen(текст) Описание
Возвращает длину текста. Макрос пригоден для однострочного текста, потому что перевод строки считается как 2 символа. Пример
%StrLen("проверка" %StrReplace Параметры
%StrReplace(текст, найти, заменить на) Описание
Заменяет в тексте все найденные строки на строку-заменитель (поиск регистронезависимый). Пример
%StrReplace("до ре ми ре фа","ре","ля" %StrTr Параметры
%StrTr(текст, искомый алфавит, новый алфавит) Описание
Это младший брат %StrReplace. Используйте его только в том случае, если нужно заменять одиночные символы на одиночные символы!
Макрос заменяет все символы, вошедшие в искомый алфавит, на соответсвующие им символы из нового алфавита. Длины алфавитов должны быть одинаковы. Замена регистрозависима. Пример
%StrTr("Лужа","ЖУжу","СЕсе" %TextBar Параметры
%TextBar(префикс, строка, суффикс, длина) Описание
Формирует полосу заданной длины следующим образом: берётся указанная строка и добивается префиксом и суфиксом до нужной длины.
Если длина исходной строки превышает заданную длину полосы, строка не урезается. Пример
%TextBar("=-","[ текст ]","-=","70" %Trim Параметры
%Trim(текст) Описание
Удаляет лишние пробелы и служебные символы из начала и конца текста. Пример
|%Trim(" вот так " | Вычисления
Макросы для работы с цифрами. Полезно использовать со встроенным в The Bat! макросом %Calc. %CounterToDate Параметры
%CounterToDate(формат, число дней) Описание
Макрос обратный %DateToCounter. Преобразовывает Число дней, прошедших от 1 января 1900 в дату. Формат даты может содержать yyyy, yy, mmm, mm, m, dd, d, hh, h, nn, n, ss, s.
Макрос эксперементальный, его правильная работа не гарантируется. Пример
%DateToCounter %DateToCounter(формат, дата) Описание
Количество дней с 1 января 1900 до указанной Даты. Формат даты может содержать yyyy, yy, mmm, mm, m, dd, d, hh, h, nn, n, ss, s. Время считается как дробная часть числа, т.е. 1 января 1900, 12:00 будет равнятся 0.5.
Макрос эксперементальный, его правильная работа не гарантируется. Пример
Случайное целое число в указанных пределах включительно. Пример
%Random("5","10" Циклы
Макросы для многократного повторения шаблонов. %Eval Параметры
%Eval(выражение) Описание
Пропускает полученное выражение через шаблонопроцессор Бата ещё раз. Пример
%Eval("%Subject"
В этом случае первым выполняется макрос %Subject. Вместо него подставляется значение поля "тема" текущего письма. Затем управление передаётся макросу %Eval, который получает на вход тему сообщения и по сути в ней уже ничего не меняет.
%Eval("%%Subject"
В этом случае обработку сначала проходит %%Subject. Вместо него возвращается строка %Subject. Потом управление передаётся макросу %Eval, который полученную строку %Subject пропускает через шаблонопроцессор ещё раз и получает в итоге тему сообщения.
Разница между этими двумя примерами в порядке обработки макросов. Сам по себе макрос %Eval ничего полезного не делает, но все макросы для организации циклов (%While, %For, и т.д.) основаны на нём, так что важно понять идею, заложенную в "%%". %For Параметры
%For(минимальное, максимальное, имя переменной, выражение) Описание
Выполняет выражение (см. %Eval) несколько раз подряд, каждый раз предварительно присваивая указанной переменной целочисленные значения в указанном интервале. Пример
%For("1","5","Iter","%%_Iter " %ForDown Параметры
%ForDown(максимальное, минимальное, имя переменной, выражение) Описание
Макрос аналогичен %For. Отличие в том, что отсчет идёт в обратном направлении. Пример
%For("5","1","Cnt","%%_Cnt " %While Параметры
%While(имя переменной, терминальное значение, выражение) Описание
Выполняет выражение (см. %Eval) несколько раз до тех пор, пока указанная переменная не приобретёт терминальное значение.
Осторожно!!! Не делайте бесконечные циклы! Пример
%Until Параметры
%Until(имя переменной, терминальное значение, выражение) Описание
То же что и %While, но проверка на терминальное значение производится после обработки выражения.
Макросы для работы со списками перечисленных значений. %GetValueN Параметры
%GetValueN(n, список) %GetValueN(n, список, разделитель) Описание
Макрос возвращает n-е значение из списка. Список это строка с перечисленными значениями. Разделитель сообщения по умолчанию "," (запятая), но его можно изменить.
Отдельные значения, если они содержат внутри себя разделитель, можно заключать в кавычки " и ?.
Внутри значений можно использовать escape-последовательности. "\n" и "\t" воспринимаются как перевод строки и табуляция соответственно.
Обратите внимание на то что пример строкой ниже работать не будет. Потому что символ " используется как ограничитель макроса %To, и его нельзя использовать внутри. Это ограничение, накладываемое The Bat!?ом.
Быстрый шаблон "sample": "test, a","test2, b","test3, c" Пример
%GetValueN("3","раз, 'раз\nдва', 'третий \' третий \' третий'" %GetValueKey Параметры
%GetValueKey(ключ, список) %GetValueKey(ключ, список, разделитель ключа и значения) %GetValueKey(ключ, список, разделитель ключа и значения, разделитель строк) Описание
Макрос находит в списке ключ и возвращает значение этого ключа. Если ключ не найден, возвращается пустая строка.
По умолчанию ключ и значение разделяются запятой ",", но можно установить и другой разделитель. Разделитель строк также можно поменять, но как правило "\n" (перевод строки) должен подойти в большинстве случаем. Пример
%GetValueRegExpKey(ключ, список) %GetValueRegExpKey(ключ, список, разделитель ключа и значения) %GetValueRegExpKey(ключ, список, разделитель ключа и значения, разделитель строк) %GetValueRegExpKey Описание
Макрос аналогичен %GetValueKey с тем лишь исключением, что ключами являются регулярные выражения. Пример
%GetValueRegExpKey("andrew@microsoft.com"," '@microsoft\.' = вы работаете на MS '@.+\.microsoft\.' = вы работаете на департамент MS '@barin\.com\.ua\Z' = вы работаете на меня ","=" Windows
Макросы для работы с операционной системой. %KeybLayout Параметры
%KeybLayout(раскладка клавиатуры) Описание
Переключает текущую раскладку клавиатуры. Можно использовать 8-циферный код языка (например, 00000409 это английский), или один из следующих идентификаторов: BE, BG, CS, DA, DE, EL, EN, ET, IT, LT, LV, NL, NO, PL, PT, RO, RU, SL, UK. Пример
%KeybLayout("RU" %RegRead Параметры
%RegRead(путь к значению) %RegRead(путь к значению, результат по умолчанию) Описание
Возвращает строковое (STRING) или целочисленное (DWORD) значение из указанного пути в реестре.
Если значения не существует, возращается значение по умолчанию. Пример
%Run(командная строка) %Run(командная строка, состояние окна) %Run(командная строка, состояние окна, время ожидания) Описание
Выполняет командную строку.
Второй параметр указывает состояние запущеного приложения: HIDE, ACTIVE, ACTIVEMAX, ACTIVEMIN, NOTACTIVE, NOTACTIVEMIN. По умолчанию ACTIVE.
Если указан третий параметр, обработка шаблона приостанавливается до тех пор, пока запущенное приложение не завершит свою работу, но не больше чем указанное число миллисекунд. Пример
%Run("notepad.exe c:\boot.ini","ACTIVEMAX" Winamp
Макросы для наблюдения за Winamp'ом. %WinampStatus Параметры
%WinampStatus Описание
Возвращает состояние WinAmp'а — одну из четырех строк: OFF, STOPPED, PAUSED, PLAY. Пример
%WinAmpStatus %WinampTitle Параметры
%WinampTitle Описание
Название композиции, загруженной в WinAmp 2.xx/5.xx. Прокрутка названия композиции в заголовке окна должна быть отключена. Пример
%WinAmpTitle Другие
Макросы, не относящиеся к другим разделам %CountAttachments Параметры
%CountAttachments Описание
Количество приложенных к письму файлов. Пример
%CountAttachments %MyMacrosVersion Параметры
%MyMacrosVersion Описание
Возвращает версию MyMacros в виде вроде "MyMacros N.xx". Пример
%MyMacrosVersion %OCountAttachments Параметры
%OCountAttachments Описание
Количество приложенных к исходному письму файлов. Пример
%OCountAttachments %SubjIfNone Параметры
%SubjIfNone(новая тема) Описание
Установить в поле "Тема:" новую тему, если это поле ещё пустое. Пример
%SubjIfNone="Про MyMacros" %ToIfNone Параметры
%ToIfNone(адрес получателя) Описание
Установить в поле "Кому:" адрес получателя, если список получателей сообщения ещё пуст. Пример