@echo off setlocal enableextensions enabledelayedexpansion REM :: TRIT - TRanslITerate, usage: trit "text" :TRIT_L1 set _cmdpar=%1 REM :: Keep one space after "%1"!!! set _allpar=!_allpar!%1 shift & if defined _cmdpar goto TRIT_L1 set _str2trit=!_allpar:~0,-2! call CQ _str2trit_tmp !_str2trit! echo !_str2trit_tmp! set "_str2trit_i=0" set "_str2trit=" :TRIT_L2 set _str2trit_let=!_str2trit_tmp:~%_str2trit_i%,1! if not defined _str2trit_let goto :TRIT_L4 for %%Z in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if !_str2trit_let!==%%Z ( set _str2trit_let={!_str2trit_let!} goto :TRIT_L3 ) ) :TRIT_L3 set _str2trit=!_str2trit!!_str2trit_let! set /a _str2trit_i+=1 goto :TRIT_L2 :TRIT_L4 set _str2trit_list={Y}{E} Е {Y}e Е ye е {Y}{O} Ё {Y}o Ё yo ё ^ {Y}{U} Ю {Y}u Ю yu ю {Y}{A} Я {Y}a Я ya я ^ {J}{E} Е {J}e Е je е {J}{O} Ё {J}o Ё jo ё ^ {J}{U} Ю {J}u Ю ju ю {J}{A} Я {J}a Я ja я ^ {Z}{H}{Y} ЖИ {Z}h{Y} ЖИ {Z}{H}y Жи {Z}hy Жи zhy жи ^ {K}{H}{Y} ХЫ {K}h{Y} ХЫ {K}{H}y Хы {K}hy Хы khy хы ^ {T}{S}{Y} ЦЫ {T}s{Y} ЦЫ {T}{S}y Цы {T}sy Цы tsy цы ^ {S}{H}{C}{H}{Y} ЩЫ {S}hch{Y} ЩЫ {S}{H}{C}{H}y Щы {S}hchy Щы shchy щы ^ {C}{H}{Y} ЧЫ {C}h{Y} ЧЫ {C}{H}y Чы {C}hy Чы chy чы ^ {S}{H}{Y} ШИ {S}h{Y} ШИ {S}{H}y Ши {S}hy Ши shy ши ^ {B}{Y} БЫ {B}y Бы by бы {V}{Y} ВЫ {V}y Вы vy вы ^ {G}{Y} ГЫ {G}y Гы gy гы {D}{Y} ДЫ {D}y Ды dy ды ^ {Z}{Y} ЗЫ {Z}y Зы zy зы {K}{Y} КЫ {K}y Кы ky кы ^ {L}{Y} ЛЫ {L}y Лы ly лы {M}{Y} МЫ {M}y Мы my мы ^ {N}{Y} НЫ {N}y Ны ny Ны {P}{Y} ПЫ {P}y Пы py пы ^ {R}{Y} РЫ {R}y Ры ry ры {S}{Y} СЫ {S}y Сы sy сы ^ {T}{Y} ТЫ {T}y Ты ty ты {F}{Y} ФЫ {F}y Фы fy фы ^ {E}{H} Э {E}h Э eh э {A} А a а {E} Е e е {I} И i и ^ {O} О o о {U} У u у {Z}{H} Ж {Z}h Ж zh ж ^ {K}{H} Х {K}h Х kh х {T}{S} Ц {T}s Ц ts ц ^ {S}{H}{C}{H} Щ {S}hch Щ shch щ {C}{H} Ч {C}h Ч ch ч ^ {S}{H} Ш {S}h Ш sh ш {B} Б b б {V} В v в {G} Г g г ^ {D} Д d д {Z} З z з {K} К k к {L} Л l л {M} М m м ^ {N} Н n н {P} П p п {R} Р r р {S} С s с {T} Т t т ^ {F} Ф f ф {H} Х h х {C} Ц c ц {W} В w в {Q} К q к ^ {X} Кс x кс {Y} Й y й ' ь ^ ЖЫ ЖИ Жы Жи жы жи ШЫ ШИ Шы Ши шы ши ЧЯ ЧА Чя Ча чя ча ЩЯ ЩА Щя Ща щя ща ^ ЧЮ ЧУ Чю Чу чю чу ЩЮ ЩУ Щю ЩУ щю щу set "_str2trit_sfrom=" for %%Z in (%_str2trit_list%) do ( if ""=="!_str2trit_sfrom!" ( set "_str2trit_sfrom=%%Z" ) else ( call :REPL _str2trit !_str2trit_sfrom! %%Z set "_str2trit_sfrom=" ) ) set _str2trit=!_str2trit:"=ъ! echo !_str2trit! goto :RETURN :REPL set _str2repl=!%1! set _str2repl=!_str2repl:%2=%3! set %1=!_str2repl! goto :RETURN CQ set _str2dcq_output=%1 shift set "_allpar=" CQ_L1 set _cmdpar=%1 REM :: Keep one space after "%1"!!! set _allpar=!_allpar!%1 shift & if defined _cmdpar goto DCQ_L1 set _str2dcq_result=!_allpar:~0,-2! set /a _numofdisclosures=0 set /a _str2dcq_blank=0 CQ_L2 set _str2dcq_bquot=!_str2dcq_result! set _str2dcq_bquot=!_str2dcq_bquot:~0,1! set _str2dcq_equot=!_str2dcq_result! set _str2dcq_equot=!_str2dcq_equot:~-1! set _str2dcq=!_str2dcq_result! if !_str2dcq_bquot!==^" ( if !_str2dcq_bquot!==!_str2dcq_equot! ( set _str2dcq_bquot=!_str2dcq_bquot:"=! set _str2dcq_equot=!_str2dcq_equot:"=! set _str2dcq=!_str2dcq:~0,-1! set _str2dcq=!_str2dcq:~1! set _str2dcq_result=!_str2dcq_bquot!!_str2dcq!!_str2dcq_equot! set /a _numofdisclosures+=1 goto CQ_L2 ) ) else ( if "~0,1"=="!_str2dcq_bquot!" set /a _str2dcq_blank=1 ) set !_str2dcq_output!=!_str2dcq_result! goto :RETURN :RETURN endlocal |