Судя по "Sequence"=, это кусок reg-файла. Значит, действуют правила эскейпинга для reg-файлов: кавычки и бэкслэши предваряются бэкслэшами.
Далее, значение из реестра является макропоследовательностью FAR’а, первый пункт которой — присвоение строковой переменной. В правой части присвоения — строковый литерал макроязыка FAR’а. Значит, действуют правила эскейпинга для строковых литералов FAR’а: в частности, кавычки и бэкслэши предваряются бэкслэшами.
Следовательно, чтобы получить один бэкслэш в строковом литерале, его нужно удвоить; а чтобы получить два бэкслэша в значении в reg-файле, каждый из них нужно снова удвоить.
Macro Area="Shell" Key="CtrlShiftT" Name="tester"
{{
CtrlShift7 %%FileRemind=Apanel.Current; msave("%%FileRemind")
%I=fsplit(%%FileRemind,8);
$If (%I!=".reg")
msgbox("О Ш И Б К А","под курсором не .reg-файл",1)
$Exit
$End
%a=env("FarHome"); %b="\\reg2fml\\tester\\"; %c="tester.reg"; %d=%a+%b+%c; %e=%a+%b;
$If (%%FileRemind==%c)
msgbox("В Н И М А Н И Е","Файл tester.reg подсобный",1)
$Exit
$End
$If (fexist(%e)==0)
m d Space print(%e) Enter
$End
c o p y Space print(%%FileRemind) Space print(%d) Enter panel.setpath(0,%e,%c) F4 CtrlHome CtrlF7 BackSlash F A R 2 BackSlash K e y M a c r o s BackSlash Tab BackSlash F A R 2 BackSlash u s e r s BackSlash t e s t e r BackSlash K e y M a c r o s BackSlash
$Rep(5)
Tab
$End
Enter
$If (substr(Title,0,5)=="Поиск")
Esc Esc
msgbox("Проверь в файле ключ реестра","[HKEY_CURRENT_USER_Software_FAR2_KeyMacros...",0x00010001)
print("macro:load") Enter RCtrl7 Panel.SetPos(0,%%FileRemind)
$Exit
$Else
Right Enter F2 Esc r e g Space i m p o r t Space " % f a r h o m e % \ r e g 2 f m l \ t e s t e r \ t e s t e r . r e g " Space > n u l Enter % f a r h o m e % \ r e g 2 f m l \ R e g M a c r o T o F M L . e x e Space t e s t e r Enter r e g Space d e l e t e Space H K E Y _ C U R R E N T _ U S E R \ S o f t w a r e \ F a r 2 \ U s e r s \ t e s t e r Space / F Space > N u l Enter e c h o Space * . f m l - ф а й л ( ы ) Space с м о т р и Space в Space п а п к е Space % f a r h o m e % \ r e g 2 f m l \ t e s t e r Space > N u l Enter e c h o Space в Space н е й Space ж е Space п о д Space н а з в а н и е м Space t e s t e r . r e g Space с о х р а н е н а Space и Space к о п и я Space и с х о д н о г о Space ф а й л а Space > N u l Enter
$End
}}
и затем получил на него справедливое замечание:
Skirda wrote:а зачем явно напрашиваемые строки сделаны как отдельные символы?
например: Esc r e g Space i m p o r t Space " % f a r ....
и дельный совет:
Skirda wrote:у тебя наверное проблема была с двойной кавычкой и слешем - их нужно экранировать или использовать символ '@' перед строкой.
Эти сообщения я получил при опробовании частей макроса в комстроке:
Мой опыт показывает что всё то, что проходит в комстроке по macro:post, fml-макросом принимается. И вообще fml-форму макросов использовать гораздо удобнее, проще и быстрее. Большое спасибо автору плагина MicroLib!
upd 04.02.2010
Нечаянную опечатку в наименовании плагина MacroLib прошу считать его рекламой.